【GIT】Git Flow最佳实践

Git Flow 工作流一共包含五种分支:

两个长期分支:
  • 主分支 master:用于存放对外发布的版本,任何时候在这个分支拿到的,都是稳定的分布版

  • 开发分支 develop:用于日常开发,存放最新的开发版

         创建Develop分支的命令: git checkout -b develop master 

         将Develop分支发布到Master分支的命令:

     # 切换到Master分支

     git checkout master 

     # 对Develop分支进行合并 

     git merge --no-ff develop 

三个临时性分支:

        1 .功能(feature)分支:新功能分支,一般一个新功能对应一个分支,功能分支的名字,可以采用 feature-* 的形式命名。

            创建一个功能分支:

                         git checkout -b feature-x develop 

           开发完成后,将功能分支合并到 develop 分支: 

                         git checkout develop 

                   git merge --no-ff feature-x 

      删除 feature 分支:

                        git branch -d feature-x 

 

        2 . 预发布(release)分支:发布分支是从 Develop 分支上面分出来的,用于发布测试版本,测试完后最终需要合并进 Develop 和 Master 分支。它的命名,可以采用release-*的形式。

           创建一个预发布分支: 

                       git checkout -b release-1.2 develop 

     确认没有问题后,合并到 master 分支:

                       git checkout master 

                       git merge --no-ff release-1.2 

        git tag -a 1.2     ( 对合并生成的新节点,做一个标签 )

      再合并到 develop 分支:

                      git checkout develop 

            git merge --no-ff release-1.2 

         最后,删除预发布分支:

                     git branch -d release-1.2 

 

      3. 修补bug(fixbug)分支:用于修复线上版本出现的 Bug 时创建的,基于 Master 分支创建。修补结束以后,再合并进 Master 和 Develop 分支。它的命名,可以采用 fixbug-* 的形式。

              创建一个修补 bug 分支:

            git checkout -b fixbug-0.1 master 

      修补结束后,合并到 master 分支:

                git checkout master 

             git merge --no-ff fixbug-0.1 

            git tag -a 0.1.1   

      再合并到 develop 分支:

                    git checkout develop 

       git merge --no-ff fixbug-0.1 

    最后,删除"修补 bug 分支":

                   git branch -d fixbug-0.1 

 

               这三种分支都属于临时性需要,使用完以后,应该删除,使得代码库的常设分支始终只有 Maste r和 Develop。

 

Git-Flow 工具使用

安装方法:brew install git-flow

基本使用:

    • 初始化:git flow init

    • 开始新Feature:git flow feature start MYFEATURE

    • Publish一个Feature(也就是push到远程):git flow feature publish MYFEATURE

    • 获取Publish的Feature:git flow feature pull origin MYFEATURE

    • 完成一个Feature:git flow feature finish MYFEATURE

    • 开始一个Release:git flow release start RELEASE [BASE]

    • Publish一个Release:git flow release publish RELEASE

    • 发布Release:git flow release finish RELEASE
      别忘了git push --tags

    • 开始一个Hotfix:git flow hotfix start VERSION [BASENAME]

    • 发布一个Hotfix:git flow hotfix finish VERSION

 

posted @ 2017-11-22 16:01  依然范儿特西  阅读(290)  评论(0编辑  收藏  举报