Git 最显著的优点之一:版本的分支(branch)和合并(merge)
1.主分支Master
- 代码库应该有一个、且仅有一个主分支
- 所有提供给用户使用的正式版本,都在这个主分支上发布
- Git主分支的名字,默认叫做Master, 是自动建立的,版本库初始化以后,默认就是在主分支在进行开发
2.开发分支Develop
- 主分支: 用来分布重大版本
- 开发( Develop ): 在另一条分支上完成
- 这个分支可以用来生成代码的最新隔夜版本(nightly)
- 如果想正式对外发布,就在Master分支上,对Develop分支进行"合并"(merge)
# 创建 Develop 分支 $ git checkout -b develop master 将 Develop 分支发布到 Master 分支 # 切换到Master分支 $ git checkout master # 对Develop分支进行合并 $ git merge --no-ff develop
- :white_check_mark: 默认情况下,Git执行"快进式合并"(fast-farward merge),会直接将Master分支指向Develop分支
- :white_check_mark: 使用--no-ff参数后,会执行正常合并,在Master分支上生成一个新节点
3.临时性分支
1* 主(Master)分支 2* 开发(Develop)分支 3* 功能(feature)分支 4* 预发布(release)分支 5* 修补bug(fixbug)分支
4.功能分支
- 第一种是功能分支,它是为了开发某种特定功能,从Develop分支上面分出来的。开发完成后,要再并入Develop
命名形式: feature-*
1# 创建一个功能分支 2$ git checkout -b feature-x develop 3 4# 将功能分支合并到develop分支 5$ git checkout develop 6 7$ git merge --no-ff feature-x 8 9# 删除feature分支 10$ git branch -d feature-x
5.预览分支
- 第二种是预发布分支,在发布正式版本之前(即合并到Master分支之前),对预发布的版本进行测试
- 预发布分支是从Develop分支上面分出来的,预发布结束以后,必须合并进Develop和Master分支
1# 创建一个预发布分支 2$ git checkout -b release-1.2 develop 3 4# 合并到 master 分支 5$ git checkout master 6$ git merge --no-ff release-1.2 7 8# 对合并生成的新节点,做一个标签 9$ git tag -a 1.2 10 11# 再合并到develop分支 12$ git checkout develop 13$ git merge --no-ff release-1.2 14 15# 删除预发布分支 16$ git branch -d release-1.2
6.修补分支
- 最后一种是修补bug分支
- 软件正式发布以后,难免会出现bug。要创建一个分支,进行bug修补
- 修补bug分支是从Master分支上面分出来的
- 修补结束以后,再合并进Master和Develop分支
- 它的命名,可以采用fixbug-*的形式
1# 创建一个修补bug分支 2$ git checkout -b fixbug-0.1 master 3 4# 修补结束后,合并到master分支 5$ git checkout master 6$ git merge --no-ff fixbug-0.1 7$ git tag -a 0.1.1 8 9# 再合并到develop分支 10$ git checkout develop 11$ git merge --no-ff fixbug-0.1 12 13# 最后,删除"修补bug分支" 14$ git branch -d fixbug-0.1