git開發(fā)流程規(guī)范

一赎瑰、主分支Master

首先,代碼庫應該有一個破镰、且僅有一個主分支餐曼。所有提供給用戶使用的正式版本,都在這個主分支上發(fā)布鲜漩。

image

Git主分支的名字源譬,默認叫做Master。它是自動建立的孕似,版本庫初始化以后踩娘,默認就是在主分支在進行開發(fā)。

二喉祭、開發(fā)分支Develop

主分支只用來分布重大版本养渴,日常開發(fā)應該在另一條分支上完成。我們把開發(fā)用的分支泛烙,叫做Develop理卑。

image

這個分支可以用來生成代碼的最新隔夜版本(nightly)。如果想正式對外發(fā)布蔽氨,就在Master分支上藐唠,對Develop分支進行"合并"(merge)帆疟。

Git創(chuàng)建Develop分支的命令:

git checkout -b develop master

將Develop分支發(fā)布到Master分支的命令:

切換到Master分支

git checkout master

# 對Develop分支進行合并
  git merge --no-ff develop

這里稍微解釋一下,上一條命令的--no-ff參數是什么意思宇立。默認情況下踪宠,Git執(zhí)行"快進式合并"(fast-farward merge),會直接將Master分支指向Develop分支泄伪。

image

使用--no-ff參數后殴蓬,會執(zhí)行正常合并,在Master分支上生成一個新節(jié)點蟋滴。為了保證版本演進的清晰染厅,我們希望采用這種做法。關于合并的更多解釋津函,請參考Benjamin Sandofsky的《Understanding the Git Workflow》肖粮。

image

三、臨時性分支

前面講到版本庫的兩條主要分支:Master和Develop尔苦。前者用于正式發(fā)布涩馆,后者用于日常開發(fā)。其實允坚,常設分支只需要這兩條就夠了魂那,不需要其他了。

但是稠项,除了常設分支以外涯雅,還有一些臨時性分支,用于應對一些特定目的的版本開發(fā)展运。臨時性分支主要有三種:

  • 功能(feature)分支

* 預發(fā)布(release)分支

* 修補bug(fixbug)分支

這三種分支都屬于臨時性需要活逆,使用完以后,應該刪除拗胜,使得代碼庫的常設分支始終只有Master和Develop蔗候。

四、 功能分支

接下來埂软,一個個來看這三種"臨時性分支"锈遥。

第一種是功能分支,它是為了開發(fā)某種特定功能勘畔,從Develop分支上面分出來的迷殿。開發(fā)完成后,要再并入Develop咖杂。

image

功能分支的名字庆寺,可以采用feature-*的形式命名。

創(chuàng)建一個功能分支:

git checkout -b feature-x develop

開發(fā)完成后诉字,將功能分支合并到develop分支:

git checkout develop

git merge --no-ff feature-x

刪除feature分支:

git branch -d feature-x

五懦尝、預發(fā)布分支

第二種是預發(fā)布分支知纷,它是指發(fā)布正式版本之前(即合并到Master分支之前),我們可能需要有一個預發(fā)布的版本進行測試陵霉。

預發(fā)布分支是從Develop分支上面分出來的琅轧,預發(fā)布結束以后,必須合并進Develop和Master分支踊挠。它的命名乍桂,可以采用release-*的形式。

創(chuàng)建一個預發(fā)布分支:

git checkout -b release-1.2 develop

確認沒有問題后效床,合并到master分支:

git checkout master

git merge --no-ff release-1.2

# 對合并生成的新節(jié)點睹酌,做一個標簽
  git tag -a 1.2

再合并到develop分支:

git checkout develop

git merge --no-ff release-1.2

最后,刪除預發(fā)布分支:

git branch -d release-1.2

六剩檀、修補bug分支

最后一種是修補bug分支憋沿。軟件正式發(fā)布以后,難免會出現bug沪猴。這時就需要創(chuàng)建一個分支辐啄,進行bug修補。

修補bug分支是從Master分支上面分出來的运嗜。修補結束以后壶辜,再合并進Master和Develop分支。它的命名担租,可以采用fixbug-*的形式砸民。

image

創(chuàng)建一個修補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

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市便贵,隨后出現的幾起案子菠镇,更是在濱河造成了極大的恐慌,老刑警劉巖承璃,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件利耍,死亡現場離奇詭異,居然都是意外死亡盔粹,警方通過查閱死者的電腦和手機隘梨,發(fā)現死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來舷嗡,“玉大人轴猎,你說我怎么就攤上這事〗眩” “怎么了捻脖?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵锐峭,是天一觀的道長。 經常有香客問我可婶,道長沿癞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任矛渴,我火速辦了婚禮椎扬,結果婚禮上,老公的妹妹穿的比我還像新娘具温。我一直安慰自己蚕涤,他們只是感情好,可當我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布桂躏。 她就那樣靜靜地躺著钻趋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪剂习。 梳的紋絲不亂的頭發(fā)上蛮位,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天,我揣著相機與錄音鳞绕,去河邊找鬼失仁。 笑死,一個胖子當著我的面吹牛们何,可吹牛的內容都是我干的萄焦。 我是一名探鬼主播,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼冤竹,長吁一口氣:“原來是場噩夢啊……” “哼拂封!你這毒婦竟也來了?” 一聲冷哼從身側響起鹦蠕,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤冒签,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后钟病,有當地人在樹林里發(fā)現了一具尸體萧恕,經...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年肠阱,在試婚紗的時候發(fā)現自己被綠了票唆。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡屹徘,死狀恐怖走趋,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情噪伊,我是刑警寧澤吆视,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布典挑,位于F島的核電站,受9級特大地震影響啦吧,放射性物質發(fā)生泄漏您觉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一授滓、第九天 我趴在偏房一處隱蔽的房頂上張望琳水。 院中可真熱鬧,春花似錦般堆、人聲如沸在孝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽私沮。三九已至,卻和暖如春和橙,著一層夾襖步出監(jiān)牢的瞬間仔燕,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工魔招, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留晰搀,地道東北人三娩。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓耘纱,卻偏偏與公主長得像伞芹,于是被迫代替她去往敵國和親幌甘。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,922評論 2 361

推薦閱讀更多精彩內容

  • iOS系列開發(fā)-版本控制工具Git的使用 作為一個開發(fā)者,與團隊之間默契的配合是很重要的,我們所寫的代碼在無論是在...
    spicyShrimp閱讀 736評論 1 3
  • 一珠插、主分支Master 首先闸准,代碼庫應該有一個版确、且僅有一個主分支蠕蚜。所有提供給用戶使用的正式版本尚洽,都在這個主分支上發(fā)...
    誰在烽煙彼岸閱讀 457評論 0 1
  • 轉載 GIT工作流簡介 功能驅動開發(fā) "功能驅動式開發(fā)"(Feature-driven development,簡...
    張志_koen_zhang閱讀 14,498評論 1 6
  • 眼下最流行的”版本管理系統(tǒng)”波势,非Git莫屬翎朱。 相比同類軟件橄维,Git有很多優(yōu)點尺铣。其中很顯著的一點,就是版本的分支(b...
    零一間閱讀 406評論 0 2
  • 16宿命:用概率思維提高你的勝算 以前的我是風險厭惡者争舞,不喜歡去冒險凛忿,但是人生放棄了冒險,也就放棄了無數的可能竞川。 ...
    yichen大刀閱讀 6,059評論 0 4