解析 Visual Studio 中的合併衝突
當您將某個分支合併到另一個分支時,一個分支中提交的檔案變更可能會與另一個分支中的變更衝突。 Git 會嘗試使用存放庫中的歷程記錄來解析這些變更,以判斷合併的檔案看起來應該是什麼樣子。 當不清楚如何合併變更時,Git 會停止合併,並告訴您哪些檔案發生衝突。
防止合併衝突
只要檔案內容不會在提交之間大幅變更,Git 就擅長在大部分情況下自動合併檔案變更。 如果您的分支遠遠落後於主分支,請考慮在開啟提取要求之前重新將分支變基。 重新變基的分支會合併到您的主分支中,而不會發生衝突。
解決合併衝突
如果您要與相同分支中的其他人共同作業,當您推送變更時,可能會看到合併衝突。
Visual Studio 會偵測您所處理的本機分支是否位於其遠端追蹤分支後方,然後提供您選擇的選項。
注意
如果您的遠端存放庫支援 強制推送,您可以使用 [Git]>[設定] 加以啟用。
在此範例中,選取 [提取然後推送] 以包含導入遠端存放庫的變更。 如果您在提取變更或嘗試合併兩個分支時發生任何合併衝突,Visual Studio 會在 [Git 變更] 視窗中、[Git 存放庫] 視窗中,以及任何發生衝突的檔案上通知您。
[Git 變更] 視窗會顯示 [未合併的變更] 底下發生衝突的檔案清單。 若要開始解析衝突,請按兩下檔案。 或者,如果您的編輯器中有開啟衝突的檔案,您可以選取 [開啟合併編輯器]。
在 [合併編輯器] 中,使用下列任何方法開始解析衝突(如編號的螢幕擷取畫面所示):
逐行瀏覽您的衝突,然後選取核取方塊來選擇保留右側或左側。
- 或 -
選取 [接受傳入] 按鈕 (或按 F10) 接受所有傳入變更,或按 [接受目前] 按鈕 (或按 F11) 保留目前版本的所有衝突變更。 您可以選取任一並排框頂端的其中一個核取方塊,以執行相同的動作。
- 或 -
在 [結果] 視窗中手動編輯您的程式碼。
當您完成解析合併衝突後,請選取 [接受合併]。 針對所有衝突的檔案重複此流程。
使用 [Git 變更] 視窗來建立合併提交並解析衝突。
注意
若想保留檔案的所有變更,可以在 [未合併的變更] 區段中以滑鼠右鍵按一下,然後選取 [保留目前 (本機)] 而不需開啟合併編輯器。
提示
若要深入了解可用的協助工具選項,請參閱 Visual Studio 的協助工具秘訣和訣竅 頁面中的 Git 鍵盤快速鍵 章節。
設定您的 diff 工具
如果您將.gitconfig
檔案設定為使用 BeyondCompare 或 KDiff3 之類的第三方差異工具,Visual Studio 會尊重您的決定。 每當 Visual Studio 顯示 diff 時,系統就會在您選擇的工具中開啟個別的視窗。 例如,請參閱此 StackOverflow 問題。