介绍了 Git 中各种分支的用途。
Git 协作流程
master 分支
master 永远处于稳定状态,这个分支代码可以随时用来部署。不允许在该分支直接提交代码。
develop 分支
开发分支,包含了项目最新的功能和代码,所有开发都在 develop 上进行。一般情况下小的修改直接在这个分支上提交代码。
feature 分支
如果要改的一个东西会有比较多的修改,或者改的东西影响会比较大,请从 develop 分支开出一个 feature 分支,分支名约定为feature/xxx
,开发完成后合并回 develop 分支并且删除这个 feature 分支,相应的操作如下:
1 | $ git checkout -b feature/xxx develop |
如果想要当前分支能保持与 develop 的更新,请用 rebase,操作如下:
1 | # 假设当前在 feature/xxx 分支 |
rebase 会修改历史,如果你的 feature 分支是跟人合作开发的,请互相做好协调。
release 分支
当 develop 上的功能和 bug 修得差不多的时候,我们就要发布新版本了,这个时候从 develop 分支上开出一个 release 分支,来做发布前的准备,分支名约定为release/20121221
,主要是测试有没有什么 bug,如果有 bug 就直接在这个分支上修复,确定没有问题后就会合并到 master 分支。相应操作如下:
1 | $ git checkout -b release/20121221 develop |
为了让 release 分支上 bug 修改作用到 develop 分支,我们还需要把这个 release 分支合并回 develop 分支:
1 | $ git checkout develop |
hotfix 分支
如果我们发现线上的代码(也就是 master)有 bug,但是这个时候我们的 develop 上的有些功能还没完成,还不能发布,这个时候我们可以从 master 分支上开出一个 hotfix 分支(记住:直接在 master 上提交代码是不允许的!),分支名约定为hotfix/xxx
,在这个分支上修改完 bug 后需要把这个分支同时合并到 master 和 develop 分支。相应操作如下:
1 | $ git checkout -b hotfix/xxx master |
例外:当 hotfix 分支完成,这个时候如果有 release 分支存在,那么这个 hotfix 就应该合并到 release,而不是 develop 分支。
proj 分支
proj 分支为项目分支,所有的项目分支都从 master 上开出来,约定的分支名为proj/xxx
。所有的项目定制内容都直接在项目分支上提交。为了保证项目的更新,每当项目有新版本发布时都需要把 master 分支合并到 proj 分支上。相应操作如下:
1 | $ git checkout -b proj/xxx master |