Fork me on GitHub

Git分支管理策略


分支管理策略

上网查了一些相关资料(参考资料链接放在文章末尾),决定采用如下的分支管理策略:

  • 主分支master
    一个代码库有且仅有一个主分支,主分支主要用于大的版本更新,一般很少更新master分支。
  • 开发分支dev
    主分支只用来分布重大版本,日常开发应该在另一条分支dev上完成。我们把开发用的分支,叫做dev。如果要对外发布大版本,如果想正式对外发布,就在master分支上合并dev分支上代码。
1
git merge dev
  • 临时分支
    master分支和dev分支都是主要分支,长久存在,属于常设分支。我们也决定只设master分支和dev分支两个常设分支。
    但是,除了常设分支以外,还有一些临时性分支,临时性分支就是应对一些特定的版本开发,比如完成某些功能模块、修复一些bug等等都是属于临时性分支。阮一峰老师博文当中给了三个临时性分支,功能分支、预发布、修补分支,但是考虑我们团队的实际情况,我们在实际开发中可能只会用到功能(feature)分支,而修补bug(fixbug)分支与功能(feature)分支也并没有去严格去区分开来,我们不搞预发布这个环节当然也不去建预发布(release)分支了。
    最后临时性分支具体体现在我们团队中就是每个人在要开始一个新的功能模块的时候会去建个自己的分支比如:xr分支,开发完之后在dev分支上合并自己分支xr,合并完删除,下次再开发另外的功能,再重新新建xr,这样代码库的常设分支就只有dev和master了,其他都是临时分支。

Git分支工作流程

以上就是我们团队的Git分支管理策略,经过实践感觉还是不错的,下面通过git操作命令模拟一个完整的流程,假设我现在要开始进行加入项目开发:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 项目clone就不说了,假设项目已经切换到了dev分支
# 新建一个功能分支,名字随便取可以叫做feature-xxx,也可以叫自己的名字缩写xr,并切换到新的分支
$ git checkout -b xr
# 开发了一段时间,代码完成了,需要合并到dev分支上。
# 1.先在xr分支提交代码
$ git add .
$ git commit -m "提交信息"
# 2. 切换到dev分支
$ git checkout dev
# 3. 在dev分支合并临时分支xr
$ git merge xr
# 另外:这是可以通过下列操作,查看尚未合并到当前分支的branch
$ git branch --no-merged
# 或者通过下面查看已经合并的分支
$ git branch --merged
# 4.解决merge的冲突之后
$ git add .
$ git commit -m "提交信息"
# 5.提交本地dev分支到远程dev分支,这期间如果有其他人push过,则需要git pull origin dev操作,然后再push
$ git push origin dev
# 6.合并完之后,原来的xr分支任务使命已经完成,这个时候就可以删掉原来的分支了
# 有一种情况就是如果xr分支中还包含着尚未合并进来的工作成果,简单地用 git branch -d 删除该分支会提示错误
$ git branch -d xr
# 如果不管有没有包含合并进来的改动,强制删除分支,则是下面这个,但是一般情况下,如果需要合并还是要合并干净,防止丢失改动。
$ git branch -D xr
坚持原创技术分享,您的支持将鼓励我继续创作
-------------本文结束感谢您的阅读-------------
0%