Řešení konfliktů

Ke konfliktu dochází v případě, že se změny ve stejné položce v pracovním prostoru i ve vzdáleném úložišti Git provádějí. Pokud dojde ke konfliktu, stav Gitu říká Konflikt a Potvrzení je zakázáno.

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

Důležité

Tato funkce je ve verzi Preview.

Když vyberete Možnost Aktualizovat , když dojde ke konfliktům, zobrazí se zpráva s upozorněním, že před aktualizací musíte konflikty vyřešit.

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

Konflikt můžete vyřešit třemi způsoby:

Řešení konfliktů v uživatelském rozhraní

Výběrem možnosti Aktualizovat vše zobrazíte seznam všech položek, které mají konflikty. Pak můžete vybrat, kterou verzi chcete pro každou položku zachovat. U každé konfliktní položky můžete přijmout příchozí změny z úložiště Git nebo zachovat aktuální verzi, která je v pracovním prostoru.

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

  • Zvolte Přijmout příchozí změny a přepište změny v pracovním prostoru. Změny pracovního prostoru se ztratí a stav Gitu se synchronizuje , pokud import proběhne úspěšně.

  • Pokud chcete zachovat aktuální verzi v pracovním prostoru, zvolte Zachovat aktuální obsah . Po dokončení aktualizace se stav Gitu změní na nepotvrzené změny , protože změny v pracovním prostoru ještě nejsou potvrzeny do větve.

Návrat k předchozímu stavu

Můžete vrátit celý pracovní prostor nebo větev Gitu k poslednímu synchronizovaném stavu. Pokud vrátíte větev Gitu k předchozímu potvrzení, stále uvidíte změny provedené v nesynchronované větvi. Pokud pracovní prostor vrátíte zpět, ztratíte všechny změny provedené v pracovním prostoru od posledního potvrzení.

Pokud se chcete vrátit k předchozímu synchronizovaném stavu, proveďte jednu z následujících akcí:

  • Pomocí příkazu Zpět vrátí konfliktní položky v pracovním prostoru do posledního synchronizovaného stavu.
  • Vraťte se k poslednímu synchronizovaném stavu v Gitu git revert pomocí příkazu v Azure DevOps.

Konflikty můžete vyřešit také odpojením a opětovným připojením pracovního prostoru. Po opětovném připojení vyberte směr, který chcete synchronizovat. Všimněte si ale, že při opětovném připojení přepíše všechny položky v pracovním prostoru nebo větvi a ne jenom konfliktní položky. Nevrací pracovní prostor ani větev do posledního synchronizovaného stavu. Místo toho přepíše veškerý obsah v jednom umístění obsahem druhého.

Řešení konfliktů v Gitu

Pokud si nejste jistí, jaké změny byly provedeny a které verze se mají zvolit a nechcete se vrátit k předchozímu stavu, můžete zkusit vyřešit konflikt v úložišti Git vytvořením nové větve, vyřešením konfliktu v této větvi a synchronizací s aktuální větví.

Poznámka:

Pracovní prostor může k nové větvi znovu připojit jenom správce pracovního prostoru.

  1. V podokně Správy zdrojového kódu si prohlédněte novou větev s použitím ID poslední synchronizované větve zobrazené v dolní části obrazovky.

    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.

    Tento krok vytvoří novou větev z konfliktní větve pomocí posledního synchronizovaného stavu Gitu před provedením změn, které jsou v konfliktu s vašimi změnami. Změny uvidíte v podokně Správy zdrojového kódu , ale z větve Gitu se nic neaktualizuje. Kontrolní větev zachová aktuální stav pracovního prostoru, takže při změně větve se zachovají nepotvrzené změny.

  2. Potvrďte změny do nové větve. Tato nová větev teď obsahuje změny, které jste provedli u položek připojených ke starší verzi větve Git, která není v konfliktu s vašimi změnami.

  3. V Gitu vyřešte konflikty mezi původní větví a novou větví.

  4. V Gitu sloučíte novou větev do původní větve.

  5. V prostředcích infrastruktury přepněte pracovní prostor zpět do původní větve.