Sdílet prostřednictvím


Ř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.

Snímek obrazovky sestavy se stavem Gitu, který říká konflikt

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.

Snímek obrazovky s chybovou zprávou na kartě Správy zdrojového kódu informující o konfliktech

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.

Snímek obrazovky uživatelského rozhraní pro výběr verze konfliktní položky, kterou chcete zachovat

  • 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 ovládacím panelu Zdroj se podívejte na novou větev s použitím ID poslední synchronizované větve zobrazené v dolní části obrazovky.

    Snímek obrazovky znázorňující, jak rezervovat novou větev z panelu správy zdrojového kódu výběrem šipky dolů

    Snímek obrazovky s informacemi o ID větve zobrazené v dolní části obrazovky

    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 můžete zobrazit na panelu 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.