引言:
在前面,介绍了如何使用Git,构建我们的本地仓库,轻松的实现了版本控制以及代码还原,修改日志查看等;假如是多个人一起来开发一个程序呢?则需要一个作为服务器的远程仓库!当然搭建一个服务器是需要成本的,为什么不把项目托管到Github上呢?作为开源代码库以及版本控制系统,Github拥有140多万开发者用户。随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法,不需要任何成本,为何不使用呢?是吧!
1、账号注册&仓库创建:
打开Github官网注册:Github官网,填写注册相关信息:用户呢称,邮箱,密码
注册完,跳转到如下页面,选择仓库购买方式(私有仓库,别人不可以访问,要权限),一般我们自己玩选Free: PS:对了,这时候你邮箱可能收到一封验证邮件,点下完成验证。
接下来,创建一个我们的代码仓库:
为自己的仓库添加点内容提示,就是项目的一些概述(可写可不写)
简单介绍下主页的一些东西:
2、Clone代码库到本地
当然,你可以直接用图形化界面克隆,不过我还是喜欢通过命令行来Clone,先复制下Clone的地址
然后在某个地方,有键打开git Bash:
键入:
git clone https://github.com/ZPJay/Garbage.git
然后可以看到我们的代码库就下载完成了:
打开文件夹,可以看到下述内容:
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 branch
git 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个私人仓库,有兴趣的可以考虑将代码托管到这里:!如果文中有错误纰漏,欢迎指出,谢谢~