前言
多人協作開發的時候,需要對專案程式碼做版本管理。大家做新版本的開發,需要基於上一個版本新建一個自己的開發分支,自己開發分支的程式測試透過後,就要合到線上的分支以供發版,在合併分支的時候可能會有衝突,那麼需要解決衝突後提交合並的程式碼。本篇教程主要講解使用git merge來進行分支合併,git rebase也可以做分支合併,本教程先不講,git merge在合併分支時可以保留子分支的commit記錄。下圖是git專案版本管理完整的工作流。接下來就來實際地演示如何合併分支:
1.新建分支
開發人員lxj,基於master分支新建了自己的開發分支dev_1_1_0_lxj,並且在該分支上進行了開發並提交了程式碼,以下是他的操作步驟:
① git checkout -b dev_1_1_0_lxj
② git push --set-upstream origin dev_1_1_0_lxj
③ 編寫程式碼。建立新檔案main.py,寫了一個兩數相乘的程式
④ git add .
⑤ git commt -m "feat:兩數相乘"
⑥ git push
開發人員gc,基於master分支新建了自己的開發分支dev_1_1_0_gc,並且在該分支上進行了開發並提交了程式碼,以下是他的操作步驟:
① git checkout -b dev_1_1_0_gc
② git push --set-upstream origin dev_1_1_0_gc
③ 編寫程式碼。建立新檔案main.py,寫了一個三數相乘的程式
④ git add .
⑤ git commt -m "feat:三數相乘"
⑥ git push
2.合併分支
首先,將dev_1_1_0_lxj合併到master分支上,以下是操作步驟:
① git checkout master
② git merge origin/dev_1_1_0_lxj
③ git push
然後,將dev_1_1_0_gc合併到master分支上,以下是操作步驟:
① git checkout master
② git merge origin/dev_1_1_0_gc
在執行合併命令git merge origin/dev_1_1_0_gc的時候,由於lxj和gc都編輯了main.py檔案中同一行的程式碼,所以合併分支失敗,需要解決衝突,然後提交程式碼,下面是報的衝突資訊:
同時,在編譯器Pycharm中,main.py也是報紅的狀態,如下圖所示,下面對沖突中哪部分是誰的程式碼做了說明。在這種情況下,需要和其他開發人員核對一下,確定要保留下來的程式碼是哪些,別把別人有用的程式碼刪了!!!
<<<<<<< HEAD
原生代碼
=======
拉下來的程式碼
>>>>>>>
確定了要保留的程式碼後,如下圖所示,需要提交合並後的程式碼,以下是操作步驟:
① git add .
② git commit -m "feat:合併衝突"
③ git push
3.總結
以上就是多人協作開發時,需要進行分支合併的操作流程,本教程Demo地址。學會分支合併方便專案的版本控制。後面一期,我會出一個git的進階教程,git cherry-pick的使用,用於“挑揀”提交,當我們不想把本地的整個分支進行合併時,就可以使用git cherry-pick將某幾次提交合入到本地分支上。