衝突解決
當更改工作區和遠端 Git 存放庫中的同一個項目時,就會發生衝突。 發生衝突時,Git 狀態會顯示 [衝突],並且 [認可] 會停用。
當您在發生衝突時選取 [更新] 時,訊息會通知您需要解決衝突才能更新。
可透過三種方式來解決衝突:
- 選取要透過 UI 保留的版本。
- 將工作區或 Git 存放庫還原為先前已同步的狀態。
- 在 Git 中解決衝突。
在 UI 中解決衝突
選取 [全部更新] 以查看所有發生衝突的項目清單。 然後可以選取每個項目要保留的版本。 對於每個存在衝突的項目,可以選擇接受來自 Git 存放庫的傳入變更,或保留工作區中目前的版本。
選擇 [接受傳入變更] 以覆寫工作區中的變更。 如果匯入成功,工作區變更會遺失並且 Git 狀態會變更為已同步。
選擇 [保留目前內容] 以保留工作區中的目前版本。 更新完成之後,Git 狀態會變成未認可的變更,因為工作區中的變更尚未認可至分支。
還原為先前的狀態
您可以將整個工作區或 Git 分支還原為上次同步的狀態。 如果將 Git 分支還原為先前的認可,仍然可以看到對未同步分支所做的變更。 如果還原工作區,則會遺失自上次認可之後對工作區所做的所有變更。
若要還原為先前同步的狀態,請執行下列動作之一:
您也可以透過中斷連線並重新連線工作區來解決衝突。 重新連線時,請選取您想要同步的方向。不過請注意,重新連線會覆寫工作區或分支中的所有項目,而不只是發生衝突的項目。 其也不會將工作區或分支傳回至上次同步的狀態, 而是會以另一個位置的內容覆寫一個位置的所有內容。
在 Git 中解決衝突
如果不確定做出了哪些變更以及要選擇哪個版本,並且不想還原為先前的狀態,則可以嘗試透過建立新分支、解決該分支中的衝突並將其與目前的分支同步,來解決 Git 存放庫中的衝突。
注意
僅工作區管理員可以將工作區重新連線到新分支。
在 [原始檔控制] 面板上,使用螢幕底部顯示的上次同步的分支 ID 簽出新分支
此步驟會使用與做出的更改發生衝突之前上次同步的 Git 狀態,從發生衝突的分支建立新的分支。 可以在 [原始檔控制] 面板中看到變更,但 Git 分支中沒有任何可更新的變更。 簽出分支會保留目前的工作區狀態,因此更改分支時會保留未認可的變更。
將變更認可至新分支。 此新分支現在已含有對連線至舊版 Git 分支 (與變更不會衝突) 的項目所做的更改。
在 Git 中,解決原始分支與新分支之間的衝突。
在 Git 中,將新分支合併至原始分支
在 Fabric 中,將工作區切換回原始分支。