ios開發(fā):git分支管理系統(tǒng)相對(duì)標(biāo)準(zhǔn)的方案

首先列一下我所看到的git分支管理:

市面上常見的分支管理方式

其中:中間的Origin代表的是遠(yuǎn)程分支,Native代表的是程序猿自己本地的分支。

這種常見的分支管理方式很普遍,但是同樣,我認(rèn)為也沒有用到點(diǎn)上,是處于最低端的,git的用法可不僅僅在于這些。

首先,我先繪制一下我所說的相對(duì)標(biāo)準(zhǔn)的git分支管理方案:

相對(duì)標(biāo)準(zhǔn)的分支方案

接下來我會(huì)以騰訊工蜂系統(tǒng)對(duì)以上步驟詳細(xì)解讀一下(Origin代表的依舊是遠(yuǎn)程分支,Native代表的依舊是程序猿自己本地的分支):

  • 步驟1:基于master檢出遠(yuǎn)程分支的dev.1.0分支,這個(gè)dev.1.0為1.0版本的總分支(這個(gè)比較簡單,略過)
  • 步驟2:主管對(duì)遠(yuǎn)程分支的dev.1.0進(jìn)行加鎖,如下圖:
    騰訊工蜂系統(tǒng)某一分支頁面

    其中:點(diǎn)擊左1紅色框可選擇某一遠(yuǎn)程分支,左2紅色框?yàn)楫?dāng)前的分支(dev.1.6.2),左3紅色框?yàn)榧渔i按鈕。

點(diǎn)擊左3紅色框的加鎖,可以看到:


加鎖的描述

點(diǎn)擊底部綠色“創(chuàng)建鎖”即為創(chuàng)建鎖成功。(看下上圖對(duì)于鎖的描述與目的,這是很重要的思想)

  • 步驟3:基于遠(yuǎn)程分支的1.0總分支,創(chuàng)建屬于自己的遠(yuǎn)程分支,之前的規(guī)則為dev.1.0.程序猿名字簡寫或全拼

  • 步驟4:團(tuán)隊(duì)下的程序猿將自己的遠(yuǎn)程檢出到本地

  • 步驟5:提交自己代碼到遠(yuǎn)程分支(直接push,沒必要執(zhí)行pull等操作)

  • 步驟6:因?yàn)椴襟E2加鎖的緣故,并不是所有人都有對(duì)dev.1.0的修改權(quán)限,所以在git地址上,創(chuàng)建一個(gè)merge請(qǐng)求,目的是將自己遠(yuǎn)程分支上的代碼合并到dev.1.0這個(gè)版本總分支上,同時(shí)艾特同組人員進(jìn)行代碼審核,如下圖:

    創(chuàng)建merge請(qǐng)求頁面

    點(diǎn)擊左側(cè)紅色框,后再點(diǎn)擊右側(cè)紅色框,則如下圖:
    選擇源分支和目的分支(注:當(dāng)前是以dev.1.7.0.lc為源分支,目的分支是dev.1.5,忽略這個(gè)細(xì)節(jié))

點(diǎn)擊左下角的“比較兩分支”,若有未merge的代碼,則會(huì)跳轉(zhuǎn)到如下頁面(這個(gè)頁面數(shù)據(jù)較多,以下三張圖片連起來則為當(dāng)前頁面的全部功能):


圖片1:填寫標(biāo)題,描述以及選擇代碼評(píng)審人,評(píng)審人為同組開發(fā)者,必要評(píng)審人為主管

圖片2:選擇評(píng)審人通過規(guī)則,只有達(dá)到設(shè)置的評(píng)審規(guī)則,后續(xù)主管才能合并代碼(評(píng)審代碼在下圖)
圖片3:確認(rèn)源分支和目標(biāo)分支,并選擇是否創(chuàng)建新的分支,以及底部紅色框的兩個(gè)按鈕分別為:提交記錄與代碼變更

鑒于代碼安全方面的考慮,就不截圖代碼“變更”記錄了。

  • 步驟7:在Origin:dev.1.0分支上打包,提交審核之后,蘋果審核通過之后,Origin:dev.1.0再創(chuàng)建一個(gè)merge請(qǐng)求(參考步驟6),將Origin:dev.1.0代碼合并到master。這一步驟是為了防止審核不通過,導(dǎo)致master代碼與app store的功能不一致。

最后說下這套分支方案的優(yōu)點(diǎn):

  • 高效性。很多人會(huì)疑問:這套方案看起來復(fù)雜,哪來的高效性?其實(shí)不然。原因在于步驟3和步驟4的存在,我只關(guān)心我自己的功能,其他人提交了什么我不管。如果按照文章開始的那套分支方案,其他人提交了代碼,我在提交時(shí),大概率上還要拉取遠(yuǎn)程分支,最終會(huì)導(dǎo)致再次編譯,這點(diǎn)我是難以忍受。項(xiàng)目大了,人員多了,耗費(fèi)的時(shí)間會(huì)翻倍增長。

  • 流程規(guī)范。包含了git相關(guān)的所有功能,比如遠(yuǎn)程分支,本地分支,pull,push,merge等。

  • 安全性。安全性包含了兩方面:1.步驟2的遠(yuǎn)程分支的加鎖。2.步驟5的本地分支代碼的隨時(shí)提交,比如中午吃飯,抽煙,開會(huì),下班等出現(xiàn)離開電腦前的情況時(shí),隨時(shí)將本地代碼push到自己的遠(yuǎn)程分支,保證本地分支的代碼與遠(yuǎn)程分支始終保持一致,即使是功能未完成,跑不起來也要提交,提交之后也不會(huì)影響其他人編譯他們自己的分支上的代碼。

當(dāng)然,正如文章標(biāo)題所說,這套分支方案是相對(duì)標(biāo)準(zhǔn),有一定缺陷。隨著知識(shí)點(diǎn)的增加與編程思想的夯實(shí),我心目中也有一套絕對(duì)標(biāo)準(zhǔn)的分支管理方案,后續(xù)有時(shí)間我會(huì)更新。

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

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

  • Git常用命令介紹 開始 git config --global user.name "xxx" 添加賬戶g...
    Wendy__Smile閱讀 847評(píng)論 0 0
  • 本系列教程來自廖雪峰的官方網(wǎng)站,現(xiàn)在搬運(yùn)過來,目的幫助自己和小白學(xué)習(xí)收藏!附贈(zèng):常用git命令清單 目錄 前言 創(chuàng)...
    Blizzard_liu閱讀 1,218評(píng)論 0 4
  • 前言 分支就是科幻電影里面的平行宇宙,當(dāng)你正在電腦前努力學(xué)習(xí)Git的時(shí)候,另一個(gè)你正在另一個(gè)平行宇宙里努力學(xué)習(xí)SV...
    嘟爺MD閱讀 3,936評(píng)論 3 20
  • 分支管理 git的分支是git能如此受到人們喜愛很重要的一個(gè)原因,下邊就聊聊git中的分支。 什么是分支 你每次c...
    大喵愛讀書閱讀 716評(píng)論 0 1
  • 夜鶯2517閱讀 128,217評(píng)論 1 9

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