共用方式為


解決 Visual Studio 中的合併衝突

當您將一個分支合併到另一個分支時,一個分支中的提交檔案變更可能會與另一個分支中的變更發生衝突。 Git 會嘗試使用存放庫中的歷程記錄來解析這些變更,以判斷合併的檔案看起來應該是什麼樣子。 當不清楚如何合併變更時,Git 會停止合併,並告訴您哪些檔案發生衝突。

防止合併衝突

只要檔案內容在提交之間沒有大幅變更,Git 就能在大部分情況下自動合併檔案變更。 在開啟拉取請求之前,若您的分支遠遠落後於主要分支,請考慮重新基準化您的分支。 重新建立的分支將會合併到您的主要分支中,而不會發生衝突。

解決合併衝突

  • 如果您在同一個分支與其他人協作,當您推送變更時,很可能會遇到合併衝突。

    推送後合併衝突的螢幕快照。

  • Visual Studio 會偵測您所工作的本機分支是否落後於其遠端追蹤分支,然後提供選項供您選擇。

    當本機分支落後於遠端分支時可用的選項截圖。

    注意

    如果您的遠端存放庫支援 強制推送,您可以使用 Git>Settings加以啟用。

    在此範例中,選取 [提取] 然後 [ 推送],以包含從遠端存放庫引入的變更。 如果您在提取變更或嘗試合併兩個分支時發生任何合併衝突,Visual Studio 會在 [Git 變更] 視窗中、Git 存放庫 視窗中,以及任何發生衝突的檔案上知道。

    合併衝突通知的螢幕快照。

  • [Git 變更] 視窗會顯示 [未合併的變更]下發生衝突的檔案清單。 若要開始解決衝突,請按兩下檔案。 或者,如果您在編輯器中開啟了有衝突的檔案,您可以選取 開啟合併編輯器

    Git 變更視窗中合併衝突狀態的螢幕截圖。

  • 在 [合併編輯器] 中,使用下列任何方法開始解決衝突(如編號的螢幕快照所示):

    1. 逐行瀏覽您的衝突,然後選取複選框來選擇保留右側或左側。

      -或-

    2. 選取 [接受傳入] 按鈕(或按 F10),以接受所有傳入變更;或者選取 [保留目前] 按鈕(或按 F11),以保留您目前版本的所有衝突變更。 您可以選取並排視窗頂端的其中一個複選框,以執行相同的動作。

      -或-

    3. [結果] 視窗中手動編輯程序代碼。

    顯示如何在Visual Studio 2022中解決合併衝突的螢幕快照。

    提示

    如果您不喜歡 [合併編輯器] 中的預設版面配置,您可以使用齒輪下拉功能表來變更它。

    [合併編輯器] 設定選項的螢幕快照。

    例如,下列螢幕快照顯示垂直檢視的外觀:

    [合併編輯器] 使用者介面中垂直檢視的螢幕快照。

  • 當您完成解決合併衝突時,請選取 [接受合併]。 請對所有衝突的檔案重複這個過程。

    Visual Studio 2022 中 [接受合併] 動作的螢幕快照。

  • 使用 [Git 變更] 視窗來建立合併提交並解決衝突。

    利用 [Git 變更] 視窗來創建合併提交的螢幕截圖。

    注意

    如果您想要保留檔案的所有變更,您可以在 [未合併的變更] 區段中按滑鼠右鍵,然後選取 [保留目前(本機)],而不需開啟 [合併編輯器]。

    [保持目前] 選單選項的螢幕快照。

提示

若要深入瞭解可用的輔助功能選項,請參閱 Visual Studio 輔助功能秘訣和訣竅 頁面的 Git 鍵盤快捷方式 一節。

設定您的差異工具

如果您將 .gitconfig 檔案 設定為使用 BeyondCompare 或 KDiff3 等第三方差異工具,Visual Studio 會尊重它。 每當 Visual Studio 通常會顯示差異時,就會在您選擇的工具中開啟個別的視窗。 如需範例,請參閱此 Stack Overflow 問題。