现代软件开发过程中要实现高效的团队协作,需要使用代码分支管理工具实现代码的共享、追溯、回滚及维护等功能。目前流行的代码管理工具,包括 CVS,SVN,Git,Mercurial 等
CVS 和 SVN 是集中管理,Git 具有非常明显的优势,例如:去中心化的代码管理方式减少了开发者对中心服务器的依赖,每个成员在本地都有一个完整的代码库,在不联网的情况下也能提交代码;不同于 SVN 中的每个分支具有独立的代码,Git 中的每一个分支只是指向当前版本的一个指针,Git 的分支策略使创建和合并分支变得快捷灵活。
从百度指数,也可以看到 Git 的优势被越来越多的人所认可。
Git 的优势
- Git 可以在本地进行提交以支持离线工作;
- Git 可以在本地创建分支并且没有命名空间冲突的问题;
- Git 可以让提交通过 Pull Request 的方式进行,不需要所有的开发者都有主仓库的写权限;
- Git 在优化性能时选择了合并分支作为主要的性能衡量指标,将合并分支变成了成本非常低的操作以鼓励分支的使用;
- Git 通过 SHA-1 哈希来保证仓库中数据的可靠性,通过 SHA-1 就可以对数据进行校验,抵御了来自攻击者的恶意篡改;
Git 作为分布式的代码管理工具,越来越多的团队开始使用它并逐步替代集中式的 SVN 或 TFVC,同时也面临新的挑战。
Git 代码分支模型
在使用 Git 管理代码以及多人协作的开发模式下,一个团队甚至一个公司对 Git 的使用有统一规范的工作流程尤为重要。<br> 开发团队遵循统一的规则执行功能开发,问题修复,分支合并,版本迭代及发布等操作,可以使团队合作变得平滑顺畅,项目有序向前推进,我们把组织内这样的工作流程(workflow)称为 Git 代码分支管理模型
主流的 git 代码分支管理模型:
- Git flow
- GitHub flow
- GitLab flow
- TBD flow
参考
- 无需分支基于主干的开发是团队健康的重要标志 https://www.infoq.cn/article/tFwoy4gko3vJqp5oYYEO
- 别再推荐 Git Flow 了:https://www.infoq.cn/article/i7m3UdTFLu1Lv2ai6abv
- 一个成功的 Git 分支模型 (译文):https://segmentfault.com/a/1190000018087325