衝突解決功能

當更改工作區和遠端 Git 存放庫中的同一個項目時,就會發生衝突。 發生衝突時,Git 狀態會顯示 [衝突],並且 [認可] 會停用。

衝突的 Git 狀態報表螢幕擷取畫面。

重要

這項功能目前為預覽版

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

原始檔控制索引標籤中錯誤訊息的螢幕擷取畫面,提示發生衝突。

可透過三種方式來解決衝突:

在 UI 中解決衝突

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

螢幕擷取畫面,其中顯示選取要保留的衝突項目版本的 UI。

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

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

還原為先前的狀態

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

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

  • 使用 [復原]命令將工作區中的衝突項目傳回至其上次同步的狀態。
  • 使用bAzure DevOps 中的 git revert 命令還原為 Git 中上次同步的狀態。

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

在 Git 中解決衝突

如果不確定做出了哪些變更以及要選擇哪個版本,並且不想還原為先前的狀態,則可以嘗試透過建立新分支、解決該分支中的衝突並將其與目前的分支同步,來解決 Git 存放庫中的衝突。

注意

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

  1. 在 [原始檔控制] 面板上,使用螢幕底部顯示的上次同步的分支 ID 簽出新分支

    螢幕擷取畫面,其中顯示如何透過選取下拉式箭頭來從原始檔控制面板簽出新分支。

    分支 ID 資訊的螢幕擷取畫面,其中分支 ID 資訊顯示在螢幕底部。

    此步驟會使用與做出的更改發生衝突之前上次同步的 Git 狀態,從發生衝突的分支建立新的分支。 可以在 [原始檔控制] 面板中看到變更,但 Git 分支中沒有任何可更新的變更。 簽出分支會保留目前的工作區狀態,因此更改分支時會保留未認可的變更。

  2. 將變更認可至新分支。 此新分支現在已含有對連線至舊版 Git 分支 (與變更不會衝突) 的項目所做的更改。

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

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

  5. 在 Fabric 中,將工作區切換回原始分支。