關於
基礎建議
安裝
你需要有一個可以工作的 git 作為前提。
Git flow 可以工作在 macOS, Linux 和 Windows之下
更多的 git flow 安裝指引,請閱讀 git flow wiki
macOS
Homebrew$ brew install git-flow-avh
Macports
$ port install git-flow-avh
Linux
$ apt-get install git-flow
Windows (Cygwin)
$ wget -q -O - --no-check-certificate https://raw.github.com/petervanderdoes/gitflow-avh/develop/contrib/gitflow-installer.sh install stable | bash
安裝 git-flow, 你需要 wget 和 util-linux。
開始
為了自定義你的項目,Git flow 需要初始化過程。
初始化
使用 git-flow,從初始化一個現有的 git 庫內開始:
git flow init
你必須回答幾個關於分支的命名約定的問題。
建議使用默認值。
特性
為即將發布的版本開發新功能特性
這通常只存在開發者的庫中。
增加新特性
新特性的開發是基於 'develop' 分支的。
通過下面的命令開始開發新特性:
git flow feature start MYFEATURE
這個操作創建了一個基於'develop'的特性分支,並切換到這個分支之下。
完成新特性
完成開發新特性。這個動作執行下面的操作.
- 合並 MYFEATURE 分支到 'develop'
- 刪除這個新特性分支
- 切換回 'develop' 分支
git flow feature finish MYFEATURE
發布新特性
你是否合作開發一項新特性?
發布新特性分支到遠程服務器,所以,其它用戶也可以使用這分支。
git flow feature publish MYFEATURE
取得一個發布的新特性分支
取得其它用戶發布的新特性分支,並簽出遠程的變更。
git flow feature pull origin MYFEATURE
你可以使用
git flow feature track MYFEATURE
跟蹤在origin上的特性分支。
作一個release版本
- 支持一個新的用於生產環境的發布版本。
- 允許修正小問題,並為發布版本准備元數據
開始准備release版本
開始准備release版本,使用 git flow release 命令.
它從 'develop' 分支開始創建一個 release 分支。
git flow release start RELEASE [BASE]
你可以選擇提供一個 [BASE]
參數,即提交記錄的 sha-1 hash 值,來開啟動 release 分支. 這個提交記錄的 sha-1 hash 值必須是'develop' 分支下的。
創建 release 分支之后立即發布允許其它用戶向這個 release 分支提交內容是個明智的做法。命令十分類似發布新特性:
git flow release publish RELEASE
(你可以通過
git flow release track RELEASE
命令簽出 release 版本的遠程變更)
完成 release 版本
完成 release 版本是一個大 git 分支操作。它執行下面幾個動作:
- 歸並 release 分支到 'master' 分支
- 用 release 分支名打 Tag
- 歸並 release 分支到 'develop'
- 移除 release 分支
git flow release finish RELEASE
緊急修復
- 緊急修復來自這樣的需求:生產環境的版本處於一個不預期狀態,需要立即修正。
- 有可能是需要修正 master 分支上某個 TAG 標記的生產版本。
開始 git flow 緊急修復
像其它 git flow 命令一樣, 緊急修復分支開始自:
git flow hotfix start VERSION [BASENAME]
VERSION 參數標記着修正版本。你可以從 [BASENAME]開始,[BASENAME]
為finish release時填寫的版本號
完成緊急修復
當完成緊急修復分支,代碼歸並回 develop 和 master 分支。相應地,master 分支打上修正版本的 TAG。
git flow hotfix finish VERSION
Backlog
- 並非所有可用的命令都涵蓋在這里,這里包含有最重要的部分命令。
- 你依舊可以繼續使用你所知道和了解的 git 命令, git flow 只是一個工具集合。
- 'support' 功能只是測試版本, 不建議使用
- 如果你樂意提供翻譯,我很樂意整合它。