衝突解決功能
當對工作區和遠端 Git 存放庫中的相同專案進行變更時,就會發生衝突。 發生衝突時,Git 狀態會顯示 [衝突 ] 和 [認可 ] 已停用。
當您在發生衝突時選取 [ 更新 ] 時,訊息會通知您需要解決衝突,才能更新。
有三種方式可以解決衝突:
- 選取要透過UI保留 的版本。
- 將工作區或 Git 存放庫還原 為先前同步狀態。
- 解決 Git 中的衝突。
解決UI中的衝突
選取 [ 全部 更新] 以查看所有發生衝突的項目清單。 然後,您可以選取每個專案要保留的版本。 針對每個衝突的專案,您可以選擇接受來自 Git 存放庫的傳入變更,或保留工作區中的目前版本。
選擇 [ 接受傳入變更 ] 以覆寫工作區中的變更。 工作區變更會遺失,如果匯入成功,Git 狀態會變更為 同步 處理。
選擇 [ 保留目前的內容 ] 以保留工作區中的版本。 更新完成之後,Git 狀態會 變成未認可的變更 ,因為工作區中的變更尚未認可至分支。
還原為先前的狀態
您可以將整個工作區或 Git 分支還原為上次同步狀態。 如果您將 Git 分支還原為先前的認可,您仍然可以看到對未同步分支所做的變更。 如果您還原工作區,則會遺失自上次認可后對工作區所做的所有變更。
若要還原為先前同步的狀態,請執行 下列其中一個 動作:
- 使用 [復原] 命令,將工作區中的衝突專案傳回其上次同步狀態。
- 使用
git revert
Azure DevOps 中的 命令,還原為 Git 中最後一個同步狀態。
您也可以中斷連線並重新連線工作區來解決衝突。 當您重新連線時, 請選取您想要同步的方向 。不過請注意,當您重新連線時,它會覆寫工作區或分支中的所有專案,而不只是衝突的專案。 它不會將工作區或分支傳回至上次同步狀態。 相反地,它會以另一個位置的內容覆寫所有內容。
解決 git 中的衝突
如果您不確定已進行哪些變更,以及要選擇哪個版本且不想還原為先前的狀態,您可以建立新的分支、解決該分支中的衝突,以及將它與目前的狀態同步處理,嘗試解決 Git 存放庫中的衝突。
注意
只有工作區管理員可以將工作區重新連線到新的分支。
從 [ 原始檔控制 ] 窗格中,使用畫面底部顯示的最後一個同步分支標識碼,查看新的分支
此步驟會使用上次同步的 Git 狀態,從衝突的分支建立新的分支,然後再進行與變更衝突的變更。 您可以在 [ 原始檔控制 ] 窗格中看到您的變更,但 Git 分支中沒有可更新的變更。 簽出分支會保留目前的工作區狀態,因此變更分支時會保留未認可的變更。
將變更認可至新的分支。 這個新分支現在已變更您連線至舊版 Git 分支的專案,但不會與您的變更衝突。
在 git 中,解決原始分支與新分支之間的衝突。
在 git 中,將新分支合併至原始分支
在 [網狀架構] 中, 將工作區切換 回原始分支。
相關內容
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應