git flow 介紹及Git 常用命令清單

Git是一個開源的分布式版本控制系統(tǒng),可以有效、高速的處理從很小到非常大的項目版本管理。

Git Flow是構(gòu)建在Git之上的一個組織軟件開發(fā)活動的模型,是在Git之上構(gòu)建的一項軟件開發(fā)最佳實踐。

Git Flow是一套使用Git進行源代碼管理時的一套行為規(guī)范和簡化部分Git操作的工具。

2010年5月,在一篇名為“一種成功的Git分支模型”的博文中,@nvie介紹了一種在Git之上的軟件開發(fā)模型。

通過利用Git創(chuàng)建和管理分支的能力,為每個分支設(shè)定具有特定的含義名稱,并將軟件生命周期中的各類活動歸并到不同的分支上。

實現(xiàn)了軟件開發(fā)過程不同操作的相互隔離。這種軟件開發(fā)的活動模型被nvie稱為“Git Flow”。

一般而言,軟件開發(fā)模型有常見的瀑布模型、迭代開發(fā)模型、以及最近出現(xiàn)的敏捷開發(fā)模型等不同的模型。每種模型有各自應(yīng)用場景。

Git Flow重點解決的是由于源代碼在開發(fā)過程中的各種沖突導(dǎo)致開發(fā)活動混亂的問題。因此,Git flow可以很好的于各種現(xiàn)有開發(fā)模型相結(jié)合使用。

http://nvie.com Vincent Driessen 文森特.德里森

主要分支

master: 永遠處在production-ready狀態(tài)

develop: 最新的下次發(fā)布開發(fā)狀態(tài)

臨時性分支

feature branches: 開發(fā)新功能都從develop分支出來,完成后merge回develop

release branches: 準(zhǔn)備要release的版本,只修bugs。從develop分支出來,完成后merge回master和develop

hotfix branches: 等不及release版本,必須馬上修master上線bugs的情況。會從master分支出來,完成后merge回master和develop

Git Flow模型全圖

feature

開始一個新功能:

git flow feature start xxxx

提交這個功能到遠程庫:

git flow feature publish xxxx

完成功能,合并到develop:

git flow feature finish xxxx

刪除遠程倉庫里的分支:

git push origin :xxxx

release

git flow release start release-v1.0

git flow release finish release-v1.0

Hotfix

(1) 切到master分支

git checkout master

(2) 更新代碼,保證本地的master代碼是最新的

git pull --rebase

(3) 新建hotfix分支,也就是在這個分支上寫代碼,此分支就是一個本地分支,xxx是分支的名稱,可以用來描述你修復(fù)的bug,例如:fix_account_bugs

git flow hotfix start xxx

(4) 代碼寫好,本地測試沒問題,所有單元測試都通過,這時可以提交修改的文件,強烈建議使用IDE的可視化工具提交代碼,因為你可以看到diff,更直觀!下面命令僅供參考。

git add xxx.java

git commit -m "fix bug"

(5) 步驟4可能會不斷重復(fù),直到最終修改和測試完成后,結(jié)束hotfix以供發(fā)布,此步驟很關(guān)鍵,執(zhí)行下面命令后,會有幾次交互界面,跟vi的操作一樣,需要insert,然后輸入一些備注,來描述你本次修改,然后:wq來保存即可。

git flow hotfix finish xxx

(6) 如果沒有沖突,說明你很幸運,操作完第5步,此時你應(yīng)該在develop分支上,可以通過git branch查看當(dāng)前分支,接下來建議你切到master分支,push代碼到服務(wù)器上,因為hotfix是為了修復(fù)線上bug,線上的代碼是來自 master的,先把問題修復(fù),保證上線,然后回來再看develop上的問題。

git checkout master

(7) 發(fā)布最終的master分支,這時候CI服務(wù)器會自動編譯打包你的代碼,等待打包完畢,重啟UAT的服務(wù),就可以通知測試人員去測試了,如果測試有問題,那請從第一步重復(fù)吧。。。。

git push origin master

(8) 切換到develop,去push代碼

git push origin develop

(9)創(chuàng)建TAG

創(chuàng)建

git tag v1.0

git tag -a v2.0 -m 'v2.0 released'

顯示 git show v1.0

搜索 git tag -l '?2*'

推送

git push origin v1.0

git push origin --tags

git push origin refs/tags/v8.0:refs/tags/v8.0

刪除本地

git tag -d v5.0

刪除遠程

git push origin :refs/tags/6.0

git push origin --delete tag v5.0

拉到本地

git fetch origin tag v8.0

最后推薦大家一款客戶端工具Tower 超級好用 Mac破解版下載地址

http://download.csdn.net/download/yshr1991/9913522

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容