git實戰-多分支開發-2022新專案

一隻愛閱讀的程式設計師 發表於 2022-05-29
Git

  現在開發中大多數公司中都在使用Git這個程式碼版本管理工具,幾乎可以說是已經成為標配,剛入職不久的這家新公司也不例外。

去公司沒多久,開始搭建專案,然後建立開發分支,有多少個後端人員就建立多少個開發分支,每個人都在自己的分支上進行開發。

 git實戰-多分支開發-2022新專案

   如上圖所示:我們假設有四個開發人員鳴人、佐助、雛田、小櫻,首先建立一個主要的開發分支 bigstuff-release-V1,然後根據 bigstuff-release-V1這個分支在建立

四個分支分別給四個開發人員使用,以每個人的名字縮寫作為分支的字尾。每個人的程式碼都提交到自己的分支上面,並且是以 bigstuff-release-V1這個分支為主線,部署

程式碼的時候,也是部署在這個分支上面。日常開發的時候,作為普通的開發人員鳴人,需要對git操作的事情就三件:.a.提交原生程式碼到自己的開發分支bigstuff-release-V1-mr

上面;.b.將bigstuff-release-V1分支上面的程式碼合併到自己的分支bigstuff-release-V1-mr上面;.c.將bigstuff-release-V1-mr分支上面的程式碼合併到bigstuff-release-V1-mr分支上,

下面分別講解。

 

操作一:提交原生程式碼到自己的開發分支bigstuff-release-V1-mr

  首先需要拉取分支上的程式碼,方式可以使用命令列,使用git clone 程式碼地址 的方式或者使用IDEA的方式進行拉取,看個人的喜好。本人是使用IDEA的方式進行拉取,如果

使用IDEA開啟某個專案時,沒有顯示VCS這個選單欄,則可以新建一個空的專案,這個選單就會顯示出來,然後按照下面的操作即可。第一次拉取一般需要輸入git的賬號和密碼。

git實戰-多分支開發-2022新專案

 

 新增Git程式碼的地址,選擇好對應的目錄即可。

 git實戰-多分支開發-2022新專案

 

拉取程式碼後,IDEA右下角會顯示當前對應的分支版本,如下圖所示(只是舉例,真實開發環境為內網,不讓截圖)

git實戰-多分支開發-2022新專案

 

 拉取程式碼後,下一步操作就是切換到自己的分支,使用命令列操作或者IDEA操作都可以,看個人喜好,本人是使用IDEA操作.

git實戰-多分支開發-2022新專案

拉取鳴人自己分支bigstuff-release-V1-mr上最新程式碼的操作方式如下,

git實戰-多分支開發-2022新專案

 

 需要選擇一個分支,然後拉取程式碼.

git實戰-多分支開發-2022新專案

 

 提交程式碼的方式方式如下,在IDEA的右上角有一個打鉤的圖示,點選它即可,同樣,使用命令列操作也可以,看個人喜好。

git實戰-多分支開發-2022新專案

 

 會顯示如下資訊,讓自己選擇需要提交的檔案,不同的IDEA顯示方式會不一樣。這裡需要注意,在選擇需要提交的檔案時,不要提交一些沒用的檔案,

如IDEA配置檔案iml。提交資訊是一定要新增的,這是個好習慣,寫一個簡單的描述這次提交的程式碼做了什麼事情,然後點選提交即可。

git實戰-多分支開發-2022新專案

 

 最後一步是push程式碼,即是真正的提交自己本地的程式碼到遠端分支上面,操作方式如下:

git實戰-多分支開發-2022新專案

 

 首先選擇對應的分支,不要選錯了,提交到別人的分支上面去了就尷尬了;其次是選擇需要提交的內容;最後點選push即可。至此在自己的分支上的所有操作介紹完畢。

git實戰-多分支開發-2022新專案

 

操作二:將bigstuff-release-V1分支上面的程式碼合併到自己的分支bigstuff-release-V1-mr上面.

  開發中需要經常進行的一個操作就是將主要開發分支上bigstuff-release-V1上的程式碼同步到自己的開發分支上,因為別人可能會對程式碼進行修改,

同步的方式為使用合併來進行。這種合併方式一般是在本地進行,因為可能會存在程式碼衝突,衝突需要在本地解決。內網開發不能截圖,只有文字說明。

操作錢需要確保自己本地修改的程式碼已經提交或者是已經備份,避免程式碼出現問題後自己的修改記錄消失。

操作方式為:(1)切換到主開發分支bigstuff-release-V1,切換方式和拉取程式碼時的切換方式一樣,然後拉取主開發分支的最新程式碼,因為別人可能有程式碼提交。

(2)將分支切換為自己的開發分支bigstuff-release-V1-mr,執行合併操作。本人是使用命令來進行合併,開啟專案的根目錄,開啟git操作視窗,執行命令

git merge bigstuff-release-V1  意思就是將bigstuff-release-V1分支的程式碼合併到bigstuff-release-V1-mr分支。如果不想合併,可以撤銷合併操作。

(3)這時候IDEA右下角會顯示當前的狀態為mergeing合併中,如果沒有程式碼衝突,則直接按照操作一的方式來提交程式碼即可。注意提交記錄中會包含bigstuff-release-V1

分支上之前已經提交的記錄,不用管它一起提交。

(4)解決衝突。很多情況下可能都會存在衝突的情況,這時候就需要我們手動去解決衝突。存在衝突的檔案會顯示為紅色,可以查詢單個衝突檔案的詳細對比資訊,

如是什麼地方衝突,然後就是怎麼解決。自己一般的解決方式為接受其他人的檔案,然後在將自己在檔案上的改動手動加上去。

(5)解決衝突後編譯一下所有的程式碼,確保可以正常編譯後,再次提交程式碼,提交方式同操作一中的一樣,還是全部記錄都進行push。這樣就將遠端主要的開發分支

的最新程式碼合併到自己的開發分支上。

參考博文

https://www.cnblogs.com/linjiqin/p/7756164.html

撤銷合併程式碼的操作

https://www.cnblogs.com/wangkongming/p/4164732.html

 

操作三:將bigstuff-release-V1-mr分支上面的程式碼合併到bigstuff-release-V1分支上

  這一步操作可以在git的後臺管理網站中進行,可是需要注意的一點是發起合併請求時,不能存在衝突,如果存在就需要取消合併。以下用gitee上的合併請求說明.

git實戰-多分支開發-2022新專案

 

 

 

建立新的合併請求,需要選擇源分支,然後選擇目標分支,意思就是將源分支上面的程式碼合併到目標分支上。這裡的源分支是bigstuff-release-V1-mr分支,

目標分支是bigstuff-release-V1 ,記得填寫註釋資訊和稽核人資訊。發起合併操作後,等待稽核人稽核,通過後就自動進行合併了。完成這一步後所有的

操作全部完成。

  總結:上面這三步操作基本上包含了在專案中使用Git操作程式碼的常規方式,學會後就可以應對常規的開發工作。採用這種方式的缺點是,合併程式碼的

時候會比較麻煩,每一次別人程式碼有改動都需要進行合併。優點是操作比較規範,每個人基本上都只操作自己的分支,合併程式碼和解決衝突都是在自己的分

支上進行,這樣相對來說也比較好解決衝突問題。不去直接操作主要的開發分支,讓主要的開發分支的程式碼保持是最新的,別人想獲取最新程式碼直接做同樣

的操作即可, 減少出錯的可能性。如果各位有更好的意見,歡迎留言說明。