共用方式為


衝突解決功能

當對工作區和遠端 Git 存放庫中的相同專案進行變更時,就會發生衝突。 發生衝突時,Git 狀態會顯示 [衝突 ] 和 [認可 ] 已停用。

Screenshot of a report with a Git status that says conflict.

重要

這項功能處於預覽狀態

當您在發生衝突時選取 [ 更新 ] 時,訊息會通知您需要解決衝突,才能更新。

Screenshot of error message from source control tab informing about conflicts.

有三種方式可以解決衝突:

解決UI中的衝突

選取 [ 全部 更新] 以查看所有發生衝突的項目清單。 然後,您可以選取每個專案要保留的版本。 針對每個衝突的專案,您可以選擇接受來自 Git 存放庫的傳入變更,或保留工作區中的目前版本。

Screenshot of UI to select which version of a conflicted item to keep.

  • 選擇 [ 接受傳入變更 ] 以覆寫工作區中的變更。 工作區變更會遺失,如果匯入成功,Git 狀態會變更為 同步 處理。

  • 選擇 [ 保留目前的內容 ] 以保留工作區中的版本。 更新完成之後,Git 狀態會 變成未認可的變更 ,因為工作區中的變更尚未認可至分支。

還原為先前的狀態

您可以將整個工作區或 Git 分支還原為上次同步狀態。 如果您將 Git 分支還原為先前的認可,您仍然可以看到對未同步分支所做的變更。 如果您還原工作區,則會遺失自上次認可后對工作區所做的所有變更。

若要還原為先前同步的狀態,請執行 下列其中一個 動作:

  • 使用 [復原] 命令,將工作區中的衝突專案傳回其上次同步狀態。
  • 使用 git revert Azure DevOps 中的 命令,還原為 Git 中最後一個同步狀態。

您也可以中斷連線並重新連線工作區來解決衝突。 當您重新連線時, 請選取您想要同步的方向 。不過請注意,當您重新連線時,它會覆寫工作區或分支中的所有專案,而不只是衝突的專案。 它不會將工作區或分支傳回至上次同步狀態。 相反地,它會以另一個位置的內容覆寫所有內容。

解決 git 中的衝突

如果您不確定已進行哪些變更,以及要選擇哪個版本且不想還原為先前的狀態,您可以建立新的分支、解決該分支中的衝突,以及將它與目前的狀態同步處理,嘗試解決 Git 存放庫中的衝突。

注意

只有工作區管理員可以將工作區重新連線到新的分支。

  1. 從 [ 原始檔控制 ] 窗格中,使用畫面底部顯示的最後一個同步分支標識碼,查看新的分支

    Screenshot showing how to check out a new branch from the source control pane by selecting the down arrow.

    Screenshot of branch ID information shown on bottom of the screen.

    此步驟會使用上次同步的 Git 狀態,從衝突的分支建立新的分支,然後再進行與變更衝突的變更。 您可以在 [ 原始檔控制 ] 窗格中看到您的變更,但 Git 分支中沒有可更新的變更。 簽出分支會保留目前的工作區狀態,因此變更分支時會保留未認可的變更。

  2. 將變更認可至新的分支。 這個新分支現在已變更您連線至舊版 Git 分支的專案,但不會與您的變更衝突。

  3. 在 git 中,解決原始分支與新分支之間的衝突。

  4. 在 git 中,將新分支合併至原始分支

  5. 在 [網狀架構] 中, 將工作區切換 回原始分支。