团队开发Git管理策略
简介
Git是一个免费的开源 分布式版本控制系统,旨在快速,高效地处理从小型到大型项目的所有事务。
分支管理
问?
1. 那么团队中我们该使用怎样的分支策略来进行开发协作?
2. 在多人的团队中,我们应该在 master 分支上直接开发吗?
3. 如果线上产生了bug该通过什么样方式的分支去修复?
4. 当有多个分支的时候,测试如何有效的参与进来每一个分支的测试?
Git的三种工作方式
Git flow
Github flow
Gitlab flow
这里就说用的比较多的Gitlab flow
主要分支:
master: 项目的主要分支,规范的分支管理是不允许在此分支进行改动代码
develop:开发分支,develop处于功能开发的最前线的版本,查看develop分支就能知道下一个发布版本有哪些功能了。develop一开始是从master里分出来的,并且定期会合并到master里,每一次合并到master,表示我们完成了一个阶段的开发,产生一个稳定版。同样的,develop下也不建议直接开发代码,develop代表的是已经开发好的功能的回归版本。最后,在适当的时候,由合适的人,合并到master,作为下一个稳定版本。
辅助分支:
feature: 功能分支,开发新功能的分支, 基于 develop, 完成后merge回develop
release: 预发布分支,准备要发布版本的分支,也基于 develop, 完成后 merge回 develop分支
hotfix: 补丁分支,修复maste上的问题, 等不及 release 版本就必须马上上线. 基于 master, 完成后merge回 master 和develop
一般来说辅助分支是不存在远程仓库,只存在于本地仓库的分支
分支命名规则:develop-xxx,release-xxx,feature-xxx,hotfix-xxx
使用工具相关操作
New Branch : 从当前分支新建分支。上图就是从master分支创建新的分支。
Checkout Tag or Revision : 使用分支、标签或提交编码,检出一个临时分支
Local Branches : 本地分支列表。同时显示对应了那个远程分支。
Remote Branches : 远程分支列表
Checkout: 检出这个分支。
Checkout As... : 使用这个分支创建新的分支并检出到新分支。
Compare With... : 使用当前分支与所选分支做代码提交比较。
Rebase Current onto Selected: 在当前分支做变基。(将所选分支提交加入到当前分支)
Checkout with Rebase : 检出所选分支并做变基。(将当前分支提交加入到所选分支)
Merge into Current: 合并到当前分支(将所选分支合并到当前分支)
Rname:修改所选分支名称
Delete:删除所选分支
首次发文,如果讲的不当请见谅,希望大家指出我的不足之处