1. 程式人生 > >Git 工作流之 GitFlow

Git 工作流之 GitFlow

GitFlow學習:

Gitflow工作流是經典模型,體現了工作流的經驗和精髓。隨著專案過程複雜化,會感受到這個工作流中深思熟慮和威力.

///////////////////////////////////////////////////////////////////////////////////////////////

一旦安裝安裝 git-flow,你將會擁有一些擴充套件命令。這些命令會在一個預定義的順序下自動執行多個操作。

git-flow 並不是要替代 Git,它僅僅是非常聰明有效地把標準的 Git 命令用指令碼組合了起來。

嚴格來講,你並不需要安裝什麼特別的東西就可以使用 git-flow 工作流程。你只需要瞭解,哪些工作流程是由哪些單獨的任務所組成的,並且附帶上正確的引數,以及在一個正確的順序下簡單執行那些對應的 Git 命令就可以了。當然,如果你使用 git-flow 指令碼就會更加方便了,你就不需要把這些命令和順序都記在腦子裡。

安裝 git-flow

近些年來出現了很多不同的安裝方法。在本章節中我們會使用當前最流行的一種: 。

要了解安裝 git-flow 細節,請閱讀下面這個文件 點選開啟連結


////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

說了這麼久,還沒有一句git命令,那就讓大家感受一下吧(感謝Bugly小色熊整理):

1). 首先將遠端程式碼拉取到本地

    git clone xxx
    git checkout -b develop origin/develop

2).新建feature分支

    git checkout -b feature 

3).多人在feature上開發,如果中途需要將develop的變更合入feature,所有人需要將本地的程式碼變更提交到遠端

    git fetch origin 
    git rebase origin/feature
    git push origin feature

然後由feature負責人rebase develop分支,刪除原來feature分支,重新新建feature分支;

    git fetch origin
    git rebase origin/feature
    git rebase develop
    git push origin :feature
    git push origin feature

這樣可以保證feature保持線性變更;

4).feature開發完成後,所有人需要將本地的程式碼變更提交到遠端

    git fetch origin 
    git rebase origin/feature
    git push origin feature

然後由feature負責人rebase develop分支,然後將feature分支合入develop,刪除feature;

    git fetch origin
    git rebase origin/feature
    git rebase develop
    git checkout develop
    git merge feature
    git push origin :feature

這樣可以保證develop保持線性變更,各feature的變更完整可追溯; 
5).合入feature後拉出對應的release/feature分支,後續bug修復在release/feature上

    git checkout develop
    git checkout -b release/feature

release/feature分支的同步合併與feature分支相同 
6).release/feature分支bug修復完成後,拉取對應的tag推送遠端進行釋出

    git tag -a v1.0 -m 'feature釋出'
    git push origin v1.0

之後將release/feature合入develop分支,然後刪除

    git rebase develop
    git checkout develop
    git merge release/feature
    git push origin :release/feature

7).釋出完成後將release合入master分支,保證master為最新穩定版本(實際操作為發起merge request)


Ref:

https://www.git-tower.com/learn/git/ebook/cn/command-line/advanced-topics/git-flow