想像一下,分別有A檔案與B檔案,我們建立一個 new-feature 分支,在兩人操作不同分支的情況下,分兩種狀況:
同事甲改A檔案,同事乙改B檔案,兩人改完後 merge,天下太平!
同事甲改A、B檔案,同事乙改B檔案,兩人改完之後 merge,天下大亂!
在狀況2中,Git 的邏輯要怎麼解決呢?
按照時間嗎?先 Merge 的先贏?
解決方法:
手動解決!
例如:衝突發生,使用 merge 的時候 :
➜ git git:(master) git merge new-feature
Auto-merging code.js
CONFLICT (content): Merge conflict in code.js
Automatic merge failed; fix conflicts and then commit the result.
檔案會出現 :
@@@@@@@@@@@@@ //master branch
=======
!new feature //another branch(new-feature)
>>>>>>> new-feature
這時就可以直接在這個檔案修改成你要的最終版本,
resolve conflict
@@@@@@@@@@@@@
!new feature
然後改完之後存檔,直接 commit :
commit -am "resolve confilcts"
就解決啦!