基于gitlab的Git團隊協(xié)作流程

Git 的一大特點就是可以創(chuàng)建很多分支并行開發(fā)囊骤。正因為它的靈活性关斜,團隊中如果沒有一個成熟的分支模型的話,那將會是一團糟览效。

分支模型

有個比較成熟的分支模型git flow。需要注意的是虫几,它只是一個模型锤灿,而不是一個工具;你可以用工具去應(yīng)用這個模型辆脸,也可以用最樸實的命令行但校。所以,重要的是理解概念啡氢,不要執(zhí)著于實行的手段状囱。

簡單理解幾個概念:

  • master-最為穩(wěn)定功能最為完整的隨時可發(fā)布的代碼;
  • hotfix——修復(fù)線上代碼的 bug术裸;
  • develop——永遠是功能最新最全的分支;
  • feature——某個功能點正在開發(fā)階段亭枷;
  • release——發(fā)布定期要上線的功能袭艺。

「master」和「develop」是主要分支,其他分支是派生而來的叨粘。各類型分支之間的關(guān)系用一張圖來體現(xiàn)

image.png

開發(fā)流程

1.開發(fā)接收需求猾编,切換到develop分支,pull develop分支最新代碼升敲,拉取特性分支feature答倡;

2.每一個新功能的開發(fā)都應(yīng)該各自使用獨立的feature分支。為了備份或便于團隊之間的合作驴党,這種分支也可以被推送到中央倉庫瘪撇,B和A可以同時在一個特性分支上協(xié)作。

3.功能開發(fā)完畢并且自測后鼻弧,先切換到 develop分支设江,pull最新代碼,切回功能所在的feature攘轩,把develop分支的代碼合并進來,有沖突和配合的人一起解決码俩。

4.到 GitLab 上的項目首頁創(chuàng)建feature合并到develop的合并請求(merge request)度帮,比對和上個版本的代碼變化,指定有合并的和參與代碼審核的同事稿存。(代碼審核)

5.項目負責(zé)人在收到合并請求時笨篷,應(yīng)該先做下代碼審核看看有沒有明顯的嚴重的錯誤;有問題就找負責(zé)開發(fā)的人去修改瓣履,沒有就接受請求并刪除對應(yīng)的 feature 分支率翅。

有問題的代碼開發(fā)者自己修改后在push到倉庫,代碼審核頁面會同步最新修改袖迎。

6.負責(zé)測試的人從develop創(chuàng)建一個 release 分支部署到測試環(huán)境進行測試冕臭,若發(fā)現(xiàn)了 bug,相應(yīng)的開發(fā)人員就在 release 分支上或者基于 release 分支創(chuàng)建一個分支進行修復(fù)燕锥。

7.當(dāng)確保某次發(fā)布的功能可以發(fā)布時辜贵,負責(zé)發(fā)布的人將 release 分支合并進 master 和 develop 并打上 tag,然后打包發(fā)布到線上環(huán)境归形。

流程圖如下:

image.png

實際開發(fā)中會有幾個問題:

1.同時維護master和develop兩個分支很耗時托慨,每次release分支發(fā)完版都要同步回master&develop;

2.功能并行開發(fā)時暇榴,無法及時同步上線和測試節(jié)點厚棵;

某個業(yè)務(wù)方的測試現(xiàn)在需要測試蕉世,但是不再這個版本,就無法操作婆硬。因為release分支是從develop上拉取的狠轻,同一個節(jié)點不能合并不再本期發(fā)版計劃的代碼step[5]

測試環(huán)境也只能同時發(fā)布一個分支step[6]

3.審核代碼后再次修改審核。step[6]&step[4]

推薦方案

image.png

我們簡單的維護兩個主要分支柿祈,不再維護release分支哈误。

master -- 功能最穩(wěn)定,線上正在運行躏嚎,可隨時發(fā)版蜜自,受保護的分支。

develop(test) -- 是功能最新最全的分支卢佣,也是部署在測試環(huán)境的分支重荠,在我們這也可以部署在debug環(huán)境。

優(yōu)化后的開發(fā)流程:

1.開發(fā)者pull master最新代碼虚茶,拉取feature分支 統(tǒng)一命名風(fēng)格:feature_seckillCoupon_denghuanqing_20181223

2.在feature分支上完成開發(fā)自測后戈鲁,切換到test分支,pull最新代碼嘹叫,把feature分支合并到test分支婆殿,可能會出現(xiàn)沖突,和協(xié)作同事商量解決罩扇。

注意婆芦,非簡單的解決featue a 和test分支沖突,需要商量是feature a還是feature b需要調(diào)整代碼喂饥,假若feature a需要調(diào)整代碼消约,feature a調(diào)整代碼,合并到test分支员帮。feature b 重新操作合并到test分支或粮。

3.通知測試在測試分支測試,這個階段不用關(guān)心發(fā)版進程捞高,除非業(yè)務(wù)互相依賴氯材。bug也在feature分支修改,修復(fù)完成后合并流程參考step2;

4.測試完全通過后棠枉,開發(fā)切換到master分支浓体,pull最新代碼,切換回feature分支辈讶,把master分支合并到feature分支(保證即將發(fā)布的代碼沒沖突)命浴,在gitlab提交合并請求,寫上功能需求點,腳本等生闲,指定項目管理員審核并且合并代碼媳溺。

5.管理員審核代碼,處理(本次版本內(nèi))合并請求碍讯,打tag悬蔽,發(fā)版,走線上驗證流程捉兴。

6.完成功能開發(fā)蝎困。feature可以保留幾周后統(tǒng)一清理,我時常會在功能分支上找一些寫過的代碼倍啥。

7.備注:修改線上的bug重新從master拉去分支或者使用未被污染的feature分支都ok禾乘。

gitlab操作演示

1.保護分支

2.提交合并請求

項目首頁點擊下拉框

image.png

3.選擇要把那個分支合并到master

image.png

4.填寫本次發(fā)版相關(guān)描述,比對代碼差異虽缕。確認提交后通知相關(guān)權(quán)限用戶始藕。(gitlab同時提供郵件通知)


image.png

5.審核&合并代碼

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市氮趋,隨后出現(xiàn)的幾起案子伍派,更是在濱河造成了極大的恐慌,老刑警劉巖剩胁,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诉植,死亡現(xiàn)場離奇詭異,居然都是意外死亡昵观,警方通過查閱死者的電腦和手機倍踪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來索昂,“玉大人,你說我怎么就攤上這事扩借〗凡遥” “怎么了?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵潮罪,是天一觀的道長康谆。 經(jīng)常有香客問我,道長嫉到,這世上最難降的妖魔是什么沃暗? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮何恶,結(jié)果婚禮上孽锥,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好惜辑,可當(dāng)我...
    茶點故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布唬涧。 她就那樣靜靜地躺著,像睡著了一般盛撑。 火紅的嫁衣襯著肌膚如雪碎节。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天抵卫,我揣著相機與錄音狮荔,去河邊找鬼。 笑死介粘,一個胖子當(dāng)著我的面吹牛殖氏,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播碗短,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼受葛,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了偎谁?” 一聲冷哼從身側(cè)響起总滩,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎巡雨,沒想到半個月后闰渔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡铐望,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年冈涧,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片正蛙。...
    茶點故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡督弓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出乒验,到底是詐尸還是另有隱情愚隧,我是刑警寧澤,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布锻全,位于F島的核電站狂塘,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏鳄厌。R本人自食惡果不足惜荞胡,卻給世界環(huán)境...
    茶點故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望了嚎。 院中可真熱鬧泪漂,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至纵刘,卻和暖如春邀窃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背假哎。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工瞬捕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人舵抹。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓肪虎,卻偏偏與公主長得像,于是被迫代替她去往敵國和親惧蛹。 傳聞我的和親對象是個殘疾皇子扇救,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,509評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Git分支管理 master:主分支,當(dāng)前分支上的代碼隨時可以直接發(fā)布香嗓,并且只能通過Pull Request從其他...
    UEUEO閱讀 9,636評論 5 33
  • Git 規(guī)范 所有使用了本規(guī)范的項目迅腔,必須嚴格規(guī)范操作,否則不予以合并代碼靠娱、提測沧烈、打包上線等后續(xù)操作。 基本要求 ...
    zgsddzwj閱讀 13,580評論 1 14
  • 多種多樣的工作流使得在項目中實施Git時變得難以選擇像云。這份教程提供了一個出發(fā)點锌雀,調(diào)查企業(yè)團隊最常見的Git工作流。...
    JSErik閱讀 4,381評論 2 8
  • Git 倉庫申請流程 1. 開發(fā)主管向Git 管理員提交Git 倉庫申請【郵件:發(fā)送給Git 管理員迅诬,抄送給項目經(jīng)...
    騷包霸天虎閱讀 2,073評論 0 0
  • 現(xiàn)在都很少收漫畫了腋逆,之前很喜歡的一部漫畫,還跑去收了日版侈贷,(其實完全看不懂啊闲礼,,日版漫畫都是拿來落灰的) 買的時候...
    帽子戴反了閱讀 2,610評論 7 10