一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

GIT分支管理是一門(mén)藝術(shù)

  英文原文:http://www.nvie.com/posts/a-successful-git-branching-model/

  原文作者:Vincent Driessen

  本文經(jīng)Linux大棚博主總結(jié)精簡(jiǎn)而成。

  1

  GIT,在技術(shù)層面上,絕對(duì)是一個(gè)無(wú)中心的分布式版本控制系統(tǒng),但在管理層面上,我建議你保持一個(gè)中心版本庫(kù)。

git中心版本庫(kù)

  2

  我建議,一個(gè)中心版本庫(kù)(我們叫它origin)至少包括兩個(gè)分支,即“主分支(master)”和“開(kāi)發(fā)分支(develop)”

bigpicture-git-branch-all

  3

  要確保:團(tuán)隊(duì)成員從主分支(master)獲得的都是處于可發(fā)布狀態(tài)的代碼,而從開(kāi)發(fā)分支(develop)應(yīng)該總能夠獲得最新開(kāi)發(fā)進(jìn)展的代碼。

  4

  在一個(gè)團(tuán)隊(duì)開(kāi)發(fā)協(xié)作中,我建議,要有“輔助分支”的概念。

  5

  “輔助分支”,大體包括如下幾類(lèi):“管理功能開(kāi)發(fā)”的分支、“幫助構(gòu)建可發(fā)布代碼”的分支、“可以便捷的修復(fù)發(fā)布版本關(guān)鍵BUG”的分支,等等。

  6

  “輔助分支”的最大特點(diǎn)就是“生命周期十分有限”,完成使命后即可被清除。

  7

  我建議至少還應(yīng)設(shè)置三類(lèi)“輔助分支”,我們稱之為“Feature branches”,“Release branches”,“Hotfix branches”。

  至此,我們形成了如下這張最重要的組織組,包含了兩個(gè)粗體字分支(master/develop)和三個(gè)細(xì)體字分支(feature/release/hotfixes)。

bigpicture-git-branch-all

  8

  “Feature branches”,起源于develop分支,最終也會(huì)歸于develop分支。

  9

  “Feature branches”常用于開(kāi)發(fā)一個(gè)獨(dú)立的新功能,且其最終的結(jié)局必然只有兩個(gè),其一是合并入“develop”分支,其二是被拋棄。最典型的“Fearture branches”一定是存在于團(tuán)隊(duì)開(kāi)發(fā)者那里,而不應(yīng)該是“中心版本庫(kù)”中。

  10

  “Feature branches”起源于“develop”分支,實(shí)現(xiàn)方法是:

git checkout -b myfeature develop

  11

  “Feature branches”最終也歸于“develop”分支,實(shí)現(xiàn)方式是:

git checkout devleopgit merge --no-ff myfeature(--no-ff,即not fast forward,其作用是:要求git merge即使在fast forward條件下也要產(chǎn)生一個(gè)新的merge commit)(此處,要求采用--no-ff的方式進(jìn)行分支合并,其目的在于,希望保持原有“Feature branches”整個(gè)提交鏈的完整性)git branch -d myfeaturegit push origin develop

merge-without-ff

  12

  “Release branch”,起源于develop分支,最終歸于“develop”或“master”分支。這類(lèi)分支建議命名為“release-*”

  13

  “Relase branch”通常負(fù)責(zé)“短期的發(fā)布前準(zhǔn)備工作”、“小bug的修復(fù)工作”、“版本號(hào)等元信息的準(zhǔn)備工作”。與此同時(shí),“develop”分支又可以承接下一個(gè)新功能的開(kāi)發(fā)工作了。

  14

  “Release branch”產(chǎn)生新提交的最好時(shí)機(jī)是“develop”分支已經(jīng)基本到達(dá)預(yù)期的狀態(tài),至少希望新功能已經(jīng)完全從“Feature branches”合并到“develop”分支了。

  15

  創(chuàng)建“Release branches”,方法是:

git checkout -b release-1.2 develop./bump-version.sh 1.2 (這個(gè)腳本用于將代碼所有涉及版本信息的地方都統(tǒng)一修改到1.2,另外,需要用戶根據(jù)自己的項(xiàng)目去編寫(xiě)適合的bump-version.sh)git commit -a -m "Bumped version number to 1.2"

  16

  在一段短時(shí)間內(nèi),在“Release branches”上,我們可以繼續(xù)修復(fù)bug。在此階段,嚴(yán)禁新功能的并入,新功能應(yīng)該是被合并到“develop”分支的。

  17

  經(jīng)過(guò)若干bug修復(fù)后,“Release branches”上的代碼已經(jīng)達(dá)到可發(fā)布狀態(tài),此時(shí),需要完成三個(gè)動(dòng)作:第一是將“Release branches”合并到“master”分支,第二是一定要為master上的這個(gè)新提交打TAG(記錄里程碑),第三是要將“Release branches”合并回“develop”分支。

git checkout mastergit merge --no-ff release-1.2git tag -a 1.2 (使用-u/-s/-a參數(shù)會(huì)創(chuàng)建tag對(duì)象,而非軟tag)git checkout developgit merge --no-ff release-1.2git branch -d release-1.2

  18

  “Hotfix branches”源于“master”,歸于“develop”或“master”,通常命名為“hotfix-*”

  19

  “Hotfix branches”類(lèi)似于“Release branch”,但產(chǎn)生此分支總是非預(yù)期的關(guān)鍵BUG。

  20

  建議設(shè)立“Hotfix branches”的原因是:希望避免“develop分支”新功能的開(kāi)發(fā)必須為BUG修復(fù)讓路的情況。

hotfix-branches1

  21

  建立“Hotfix branches”,方法是:

git checkout -b hotfix-1.2.1 master./bump-version.sh 1.2.1git commit -a -m "Bumpt version to 1.2.1" (然后可以開(kāi)始問(wèn)題修復(fù)工作)git commit -m "Fixed severe production problem" (在問(wèn)題修復(fù)后,進(jìn)行第二次提交)

  22

  BUG修復(fù)后,需要將“Hotfix branches”合并回“master”分支,同時(shí)也需要合并回“develop”分支,方法是:

git checkout mastergit merge --no-ff hotfix-1.2.1git tag -a 1.2.1git checkout developgit merge --no-ff hotfix-1.2.1git branch -d hotfix-1.2.1

  23

  還記得文章開(kāi)始時(shí)的那張大圖么,我建議你把這幅大圖從這里下載下來(lái),打印出來(lái),貼在你寫(xiě)字臺(tái)的墻壁上,好處不言而喻。

  over~

it知識(shí)庫(kù)GIT分支管理是一門(mén)藝術(shù),轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 我被黑人巨大开嫩苞在线观看 | 萝控喷水视频 | 国产综合久久久久影院 | 免费高清视频日本 | 亚洲伊人久久综合 | 中文字幕日本久久2019 | 国产精品高清视亚洲一区二区 | 国产成人亚洲精品 | 成人综合激情网 | 在线观看黄网视频免费播放 | 视频综合网 | 婷婷成人丁香五月综合激情 | 亚洲欧美另类图片 | 日本中文字幕一区二区有码在线 | 性欧美激情在线观看 | 亚洲国产欧美另类 | 一区二区三区在线免费看 | 国产成人盗摄精品 | 在线欧美a | 免费黄色欧美 | 99爱在线精品视频免费观看9 | 多色视频| 亚洲人成网男女大片在线播放 | 99国产精品一区二区 | 丁香六月五月婷婷 | 国产精品极品美女免费观看 | 国产99对白在线播放 | 婷婷六月天在线 | 日韩中文字幕久久久经典网 | 91精品国产综合久久青草 | av中文字幕在线 | 草草视频免费在线观看 | 中文字幕一二三区 | 精品国产国产综合精品 | 精品久久久久久中文字幕网 | 国产激情视频 | 日韩在线播放一区 | 97碰公开在线观看免费视频 | 欧洲一区二区 | 国产精品成人免费综合 | 日本精品久久久久中文字幕8 |