git-flow
git-flow
  关键分支
    master(主分支)
      说明：源码库应该有且仅有一个主分支。主分支应该对应着软件的生产环境。
      生命周期：始终存在。
      命名规则：master
    develop(开发分支)
      说明：用于日常开发，当源码到达一个稳定的状态，就可以将所有代码合并到master。
      生命周期：始终存在。
      命名规则：develop
      命令
        # Git创建Develop分支的命令：
git checkout -b develop master
# 切换到Master分支
git checkout master
# 对Develop分支进行合并
git merge –no–ff develop
    说明：核心分支可视为是两条一直延续的平行线。
  辅助分支
    feature(功能分支)
      说明：为了开发某种特定功能，从develop分支上面分出来的。通常应该在开发者本地代码库，而不应该在源码库。
      生命周期：从develop而来，向develop合并。
      命名规则：feature/*。eg: feature/uploadfile
      命令
        # 创建一个功能分支：
git checkout -b feature/xxx develop
# 开发完成后，将功能分支合并到develop分支：
git checkout develop
git merge –no-ff feature/xxx
# 删除feature分支：
git branch -d feature/xxx
    release(发布分支)
      说明：发布正式版本之前（即合并到master分支之前），往往需要有一个预发布的版本进行测试，就可以使用release版本。
      生命周期：可能从develop分支分离而来，但是一定要合并到develop和master分支上。
从develop分支创建新的Release分支的关键时刻是develop分支达到了发布的理想状态。
至少所有这次要发布的features必须在这个点及时合并到develop分支。
对于所有未来准备发布的features必须等到Release分支创建以后再合并。
      命名规则：release/*。eg: release/1.0.0
      命令
        # 创建一个预发布分支：
git checkout -b release/1.0.0 develop
# 确认没有问题后，合并到master/develop分支，并且做一个标签
git checkout master
git merge –no-ff release/1.0.0
git checkout develop
git merge –no-ff release/1.0.0
git tag -a 1.0.0
# 最后，删除预发布分支：
git branch -d release/1.0.0
    hotfix(补丁分支)
      说明：用来修复master分支上发现的bug。
      生命周期：从Master分支上面分出来的。修复结束以后，再合并进Master和Develop分支。
      命名规则：hotfix/*。eg: hotfix/1.0.0
      命令
        # 创建一个修补bug分支：
git checkout -b hotfix/1.0.0 master
# 修补结束后，合并到master/develop分支，并且做一个标签
git checkout master
git merge –no-ff hotfix/1.0.0
git checkout develop
git merge –no-ff hotfix/1.0.0
git tag -a 1.0.1
# 最后，删除hotfix分支
git branch -d hotfix/1.0.0
    说明：与关键分支不同，这些分支总是有一个有限的生命期，因为他们最终会被移除。
  模型图