引言:

在前面,介绍了如何使用Git,构建我们的本地仓库,轻松的实现了版本控制以及代码还原,修改日志查看等;假如是多个人一起来开发一个程序呢?则需要一个作为服务器的远程仓库!当然搭建一个服务器是需要成本的,为什么不把项目托管到Github上呢?作为开源代码库以及版本控制系统,Github拥有140多万开发者用户。随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法,不需要任何成本,为何不使用呢?是吧!

1、账号注册&仓库创建:

打开Github官网注册:Github官网,填写注册相关信息:用户呢称,邮箱,密码


git remote 添加另外一个远程仓库地址 git 设置远程仓库 git如何创建远程仓库_github

注册完,跳转到如下页面,选择仓库购买方式(私有仓库,别人不可以访问,要权限),一般我们自己玩选Free: PS:对了,这时候你邮箱可能收到一封验证邮件,点下完成验证。


git remote 添加另外一个远程仓库地址 git 设置远程仓库 git如何创建远程仓库_github_02

接下来,创建一个我们的代码仓库: 

git remote 添加另外一个远程仓库地址 git 设置远程仓库 git如何创建远程仓库_远程仓库_03


git remote 添加另外一个远程仓库地址 git 设置远程仓库 git如何创建远程仓库_远程仓库_04

为自己的仓库添加点内容提示,就是项目的一些概述(可写可不写)


git remote 添加另外一个远程仓库地址 git 设置远程仓库 git如何创建远程仓库_远程仓库_05

简单介绍下主页的一些东西:


git remote 添加另外一个远程仓库地址 git 设置远程仓库 git如何创建远程仓库_远程仓库_06


2、Clone代码库到本地

当然,你可以直接用图形化界面克隆,不过我还是喜欢通过命令行来Clone,先复制下Clone的地址 

git remote 添加另外一个远程仓库地址 git 设置远程仓库 git如何创建远程仓库_git_07

然后在某个地方,有键打开git Bash:


git remote 添加另外一个远程仓库地址 git 设置远程仓库 git如何创建远程仓库_git_08

键入:

git clone https://github.com/ZPJay/Garbage.git

然后可以看到我们的代码库就下载完成了:


git remote 添加另外一个远程仓库地址 git 设置远程仓库 git如何创建远程仓库_github_09

打开文件夹,可以看到下述内容:


git remote 添加另外一个远程仓库地址 git 设置远程仓库 git如何创建远程仓库_github_10


3、分支管理


dev分支,然后切换到dev分支:

$ git checkout -b dev
Switched to a new branch 'dev'

git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:

$ git branch dev
$ git checkout dev
Switched to branch 'dev'

git branch命令查看当前分支:

$ git branch
* dev
  master

git branch命令会列出所有分支,当前分支前面会标一个*号。dev分支上正常提交,比如对readme.txt做个修改,加上一行:

Creating a new branch is quick.

然后提交:

$ git add readme.txt 
$ git commit -m "branch test"
[dev fec145a] branch test
 1 file changed, 1 insertion(+)

dev分支的工作完成,我们就可以切换回master分支:

$ git checkout master
Switched to branch 'master'

master分支后,再查看一个readme.txt文件,刚才添加的内容不见了!因为那个提交是在dev分支上,而master分支此刻的提交点并没有变:

dev分支的工作成果合并到master分支上:

$ git merge dev
Updating d17efd8..fec145a
Fast-forward
 readme.txt |    1 +
 1 file changed, 1 insertion(+)

git merge命令用于合并指定分支到当前分支。合并后,再查看readme.txt的内容,就可以看到,和dev分支的最新提交是完全一样的。Fast-forward信息,Git告诉我们,这次合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快。Fast-forward,我们后面会讲其他方式的合并。dev分支了:

$ git branch -d dev
Deleted branch dev (was fec145a).

branch,就只剩下master分支了:

$ git branch
* master

master分支上工作效果是一样的,但过程更安全。

小结

Git鼓励大量使用分支:

git branchgit branch <name>git checkout <name>git checkout -b <name>git merge <name>git branch -d <name>



4、本地仓库与远程仓库同步问题

前面执行的这些分支操作都是在本地进行的,说了项目托管到GitHub上,肯定要跟远程仓库有交流是吧!可以用clone命令把项目下载到本地,那么修改后如何把代码同步到Github上呢?先对本地仓库做一点点修改,接着git add和git commit本地准备后,然后:

1. git remote add origin git@github.com:帐号/仓库名     与远程仓库相关联

2. git pull --rebase origin master       该条指令执行后,会在本地仓库生成一个与远程仓库一致的README.md

3. git push origin master 或者直接 git push   	将本地master分支的内容推送到远程仓库
4.git pull 	从远程仓库中同步内容到本地仓库

5、题外话

使用情况可以如下: ①使用Github作为项目管理工具:把项目托管到Github上的,然后有两个分支:开发和测试两个分支,每个版本一个分支,最后发布时才把分支合并到master上!提bug也是在上面提的,还是比较便利的! ②使用Trello来做流程控制,也是比较简洁高效的!另外,国内访问Github可能比较缓慢,而且如果是私有仓库是要收费的。不过可以考虑下使用国产的开源仓库:Git@OSC,由开源中国提供的,提供了1000个私人仓库,有兴趣的可以考虑将代码托管到这里:!如果文中有错误纰漏,欢迎指出,谢谢~