iT邦幫忙

2022 iThome 鐵人賽

DAY 22
2
Modern Web

我的床邊故事Git and GitHub系列 第 22

第22夜 GitHub Git 協作合併衝突怎麼辦

  • 分享至 

  • xImage
  •  

欲合併分支,在按下merge
合併運氣好沒事順順利利
合併遇到衝突也是正常 沒事沒事

衝突產生

所謂檔案衝突發生,hmmm來段情境故事好了
A、B、C 一起協作專案,大家各自clone回去
A先發選手,完成進度後推上去,順順的合併沒事
後面B也隨即推上他的進度,不巧剛好他編輯的地方跟A一樣!
1.因為一開始本機就沒有A的進度 2.A比他早推上去且合併

來看看下圖在幹嘛
今天我想要把分支payment member兩者合併
按下merge,跳出衝突視窗
我們可以看看左邊紅框框處我圈起來出現數字2代表有異狀數量,
來看看哪裡要更改,驚嘆號標示代表衝突處
https://ithelp.ithome.com.tw/upload/images/20221002/20150181TJcFgJBPn7.png
https://ithelp.ithome.com.tw/upload/images/20221002/20150181pZp2er12T2.png
點下去驚嘆號檔案有沒有看到!出現兩條超明顯底色,意思就是衝突段落區
解衝突其實很簡單,只要把出現>>>>>>> <<<<<<<< =======
出現這些符號該行整條刪掉,就沒衝突啦~~~~但我一個介面,個人是覺得閱讀起來更舒服

https://ithelp.ithome.com.tw/upload/images/20221002/201501819psBwqE2m2.png

審視原因需求、解衝突

解除衝突其實不是像上面說的刪除那些>>><<<===就好
更好的作法我會這樣操作,如下圖
有個按鈕是在編輯器中開啟,點下去會產生三個畫面左右分割以及下視窗
https://ithelp.ithome.com.tw/upload/images/20221002/20150181sXEBSoPAmG.png
我可以透過左右比對,打勾要保留的,他會整理並顯示在下面視窗,是一個很方便很直覺的對比介面
透過比對可以看到程式碼會長怎樣之外,需要評估衝突要保留誰比較好。
好比說這裡是會員跟課金衝突,但我不能捨棄誰,所以就在介面都打勾,他就會幫我都保留下來,並按下接受合併即可。

https://ithelp.ithome.com.tw/upload/images/20221002/20150181jXcyvvhLBN.png
解完衝突合併後,要記得commit ,可以說明一下是解衝突或者解了什麼
或者如下圖左邊欄位有個提交,也可以在那裡操作提交commit
https://ithelp.ithome.com.tw/upload/images/20221002/20150181IpurOoxx1s.png

https://ithelp.ithome.com.tw/upload/images/20221002/20150181ivvK02YnMH.png


上一篇
第21夜 GitHub Git 團體協作起手式 clone pull push -2
下一篇
第23夜 透過 GitHub 管理追蹤專案開發 Issue Projects
系列文
我的床邊故事Git and GitHub31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言