Git教程 团队协作开发流程
2017-02-08 10:06
671 查看
上一篇讲了 分工者在版本控制中的一个简要流程,今天就团队协作,整体版本控制做个介绍,参考了一些同学的博客,适当做了简化,大同小异,具体的命令的使用,会在后续详细讲解,如果有个别问题,还请多加指正
详细开发流程请参考 A
successful Git branching model
附图片如下:
具体分析如下:
项目背景:
项目分工:
git虽然是分布式版本管理工具,我们需要建立一个中心仓库,先在服务端建立两条分支,一般默认会生成一个master分支,实际团队开发中也都是多分支开发,不在赘述。
master保存稳定版(production ready),开发人员平时的代码都提交到develop分支上,另外还有hot fix,further等常见分支
因为张三开发书架等模块,分支如下:
因为李四开发阅读模块,分支如下
张三开发完一部分后(n次本地
张三将自己每日的开发进度提交到remote develop分支上,张三在执行了上面所说的流程后,提交到服务端的develop分支。但这时很可能李四已经把他写的代码提交了,所以要先执行一下
这样张三代码就都提交到了服务端的develop分支上。
李四那边的流程也一样,只是少了本地同步的过程。
经过几天的开发,各个功能都已基本完成,下面就要进入测试阶段。测试阶段以此阅读类app为例,我们需要自测然后打包给测试组去测试,同时不影响开发人员继续开发其他功能,具体做法是在服务端新添加一个分支,命名为release,所以这时服务端就有3个分支了
两位同学都在本地新建一个branch,对应服务端的release分支
分别进行测试,如果发现问题,则执行
经过几天的测试后,发现没什么问题了,就可以发布稳定版了,假设为0.1(tag,标签,用于稳定版本的标记信息)
同时别忘了把release分支上的代码与develop分支合并,保证develop分支上不会有遗留的bug。(没有找到如何直接
接下来就可以继续在develop分支上进行开发了。
假如阅读类需要添加评论功能,这个功能的开发就交给了新来的王五。此时,在服务端新开一个分支,命名为feature,这时服务端的分支就变成了这样
王五也在本地建立一个comment分支,每天提交到服务端的feature/comment,王五的Git分支是这样的(不相关的服务端Git已省去)
等到这个feature开发完了,与服务端的develop分支执行一下
接下来的流程跟上面的一样:开发完毕后,新建release分支,在那上面进行bug修复,修复完毕后,
阅读器出现了一个xss漏洞,需要尽快修复,这时新建一个hotfix分支(先在本地建,然后提交到服务端),然后对漏洞进行修复,修复完后,提交到服务端的master和develop
另外,其实在实际开发过程中,协作开发要灵活运用,团队成员少,分支就可以适当简化,但需要说明的是master分支要绝对的纯净版本,master一般以tag标签标记。
详细开发流程请参考 A
successful Git branching model
附图片如下:
具体分析如下:
项目背景:
张三 / 李四 打算共同协作,开发小说阅读类app
项目分工:
张三 负责书架模块 李四 负责阅读模块
建立服务端仓库
git虽然是分布式版本管理工具,我们需要建立一个中心仓库,先在服务端建立两条分支,一般默认会生成一个master分支,实际团队开发中也都是多分支开发,不在赘述。master develop
master保存稳定版(production ready),开发人员平时的代码都提交到develop分支上,另外还有hot fix,further等常见分支
开发者的Git分支
张三的Git分支
因为张三开发书架等模块,分支如下:# 张三的Git分支 bookshelf (local) origin/master (via git remote add origin http://remote-server/reading.git) origin/develop
李四的Git分支
因为李四开发阅读模块,分支如下# 李四的Git分支 readbook (local) origin/master (via git remote add origin http://remote-server/reading.git) origin/develop
开发过程
张三开发完一部分后(n次本地commit),提交到本地的git server
git add . git commit -am "注释说明"
张三将自己每日的开发进度提交到remote develop分支上,张三在执行了上面所说的流程后,提交到服务端的develop分支。但这时很可能李四已经把他写的代码提交了,所以要先执行一下
rebase
git rebase origin/develop git push origin develop
这样张三代码就都提交到了服务端的develop分支上。
李四那边的流程也一样,只是少了本地同步的过程。
开发完毕,进入测试阶段
经过几天的开发,各个功能都已基本完成,下面就要进入测试阶段。测试阶段以此阅读类app为例,我们需要自测然后打包给测试组去测试,同时不影响开发人员继续开发其他功能,具体做法是在服务端新添加一个分支,命名为release,所以这时服务端就有3个分支了master developrelease
两位同学都在本地新建一个branch,对应服务端的release分支
git checkout -b release origin/release
分别进行测试,如果发现问题,则执行
pull&
push
# 当前在release分支下 git pull origin release git push origin develop
经过几天的测试后,发现没什么问题了,就可以发布稳定版了,假设为0.1(tag,标签,用于稳定版本的标记信息)
git checkout master git rebase origin/release git tag 0.1 git push origin master --tags
同时别忘了把release分支上的代码与develop分支合并,保证develop分支上不会有遗留的bug。(没有找到如何直接
merge两个服务端
branch的方法)
git checkout develop git rebase origin/release git push origin develop # 删除服务端的release分支 git push origin :release
接下来就可以继续在develop分支上进行开发了。
添加新特性
假如阅读类需要添加评论功能,这个功能的开发就交给了新来的王五。此时,在服务端新开一个分支,命名为feature,这时服务端的分支就变成了这样master developfeature/comment
王五也在本地建立一个comment分支,每天提交到服务端的feature/comment,王五的Git分支是这样的(不相关的服务端Git已省去)
master archive origin/feature/comment
等到这个feature开发完了,与服务端的develop分支执行一下
rebase,然后再提交到服务端的develop,这样博客的archive功能就有了
git checkout archive git rebase origin/feature/comment git push origin feature/comment# 如果要删除服务端的feature/comment分支的话 git push origin :feature/comment
接下来的流程跟上面的一样:开发完毕后,新建release分支,在那上面进行bug修复,修复完毕后,
merge到服务端的master和develop
紧急修复漏洞
阅读器出现了一个xss漏洞,需要尽快修复,这时新建一个hotfix分支(先在本地建,然后提交到服务端),然后对漏洞进行修复,修复完后,提交到服务端的master和developgit checkout master git pull origin master git checkout -b hotfix # 漏洞修复... # 修复完后 git push origin hotfix git checkout master git rebase hotfix git push origin master git push origin develop
另外,其实在实际开发过程中,协作开发要灵活运用,团队成员少,分支就可以适当简化,但需要说明的是master分支要绝对的纯净版本,master一般以tag标签标记。
相关文章推荐
- RPC failed; result=22, HTTP code = 411
- git更新已經刪除的文件
- 快速使用Git管理"码云"或者"Github"
- 提取Git每次提交后Commit的文件
- GIT迁移服务器
- 分布式版本管理git入门指南使用资料汇总及文章推荐
- 说说技术型创业团队的技术选型
- Git批量修改历史commit中的user.name 和user.email
- git终极指南:在实际开发中的应用
- 6 个托管 git 仓库的地方
- Git 教程之标签详解
- Git 教程之基本操作详解
- Git 教程之工作区、暂存区和版本库详解
- Git 教程之创建仓库详解
- Git远程操作详解
- Git 教程之远程仓库详解
- Git 教程之安装配置详解
- Git 教程之工作流程详解
- 25个 Git 进阶技巧(翻译)
- Git 详细介绍查看、删除、重命名远程分支和tag