Git近几年有逐渐取代svn的趋势,一部分原因是github的风靡,google code也关门大吉,令人唏嘘1。很多公司开始逐渐从svn代码仓库迁移到企业私有版的github—gitlab。知道怎么玩git是大势所趋。
Git小白推荐读物:atlassian出版的Git Tutorials,这家公司拥有mac上最佳git客户端SourceTree以及Bitbucket。
本文是对Comparing Workflows这篇文章和自己的使用心得所做的总结。
以下三种工作流只是典型的代表,不是规范,而是参考,可以结合自己的使用特点灵活选择和修改。
- Centralized Workflow
- Feature Branch Workflow
- Gitflow
Centralized Workflow
- 适合几个人的小项目或者自己玩。
- 和svn差别小。
- 多人协作采用rebase方式并入master。
- 小李和小红分别把代码拉到本地进行开发,然后小李先提交到了master,这时候小红再提交她的修改会被reject,因为push的过程中小红本地的Master分支和remote(服务器)上的不同。这时候小红需要
git pull --rebase origin master
将远程的代码和她本地的修改进行融合,融合的目的是让小红提交的所有的commit看起来实在小李同学push到master分支后的那个点开始做的。
- 小李和小红分别把代码拉到本地进行开发,然后小李先提交到了master,这时候小红再提交她的修改会被reject,因为push的过程中小红本地的Master分支和remote(服务器)上的不同。这时候小红需要
Feature Branch Workflow
- 适合几个人的小项目。
- 利用pull request进行code review和交流改进。
相比Centralized Workflow,这个工作流没有增加多少内容,只是在merge过程时一定要创建pull request
让大家可以有个代码review和交流修改的过程。
Gitflow
比较适合多人的大型项目。
- master
- develop
- release
- feature
- bugfix
More Readings
-
http://google-opensource.blogspot.com/2015/03/farewell-to-google-code.html↩