【每周一转】合作开发中必须的Git分支管理策略
gitFlow,也就是git工作流程,是工作中合作开发的时候必须要会的知识点。以下提到的gitFlow只是一个标准参考,团队可以不用完全按照它的规定进行代码管理,有自己的团队特色,或者根据实际情况作出一些调整都是允许的,不过应该靠近标准,这样省时省力,遇到问题也有可参考的解决办法。
- 日常工作中,我们一般都是分工开发,拉取项目之后在本地建立自己的功能分支,最后都会合并到develop分支,剩下的工作交给运维人员。
- 最常见的问题就是修改公共文件或者安装新的package会造成代码冲突,所以公共修改均应在develop上统一修改并在各个分支上同步。
- 项目最开始就应该做好项目架构的搭建和代码的同步,否则最后需要耗很多时间在代码整理上。
- 所有gitlab和github上的可视化操作都可以通过本地指令实现,程序员还是多用用指令比较酷。
GitFlow 概念
What Git flow
GitFlow是由Vincent Driessen(文森特德里森)创建的Git的分支模型(git操作流程标准)它引起了很多关注,因为它非常适合协作和扩展开发团队。
- master:主分支
- develop:主开发分支,包含确定即将发布的代码;
- feature:新功能分支,一般一个新功能对应一个分支,对于功能的拆分需要比较合理,以避免一些后面不必要的代码冲突;
- release:发布分支,发布时候用的分支,一般测试时候发现的 bug 在这个分支进行修复;
- hotfix:热修复分支,紧急修 bug 的时候用。
Why Git flow
- 并行开发
- 协作开发
- 发布阶段
- 支持紧急修复
How Git flow
本地自己分支开发完毕提交流程
- clone
- git branch develop
- git checkout -b feature1
- 写代码
- git add -A
- git commit -m "xxx"
- git push
- 来到gitlab 申请merge
- 或者 本地合并到develop 然后 push(8操作会在远程仓库建立该功能分支,如果不想在远程出现功能分支进行9操作)
申请merge时有冲突解决:
- git checkout develop
- git pull
- git checkout lgf
- git merge develop
- 手动解决冲突
- git add
- git commit
- git push
- 重新申请merge