Aktualizace kódu pomocí načtení, sloučení a přijetí změn

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Pokud existuje několik přispěvatelů projektu, udržujte místní úložiště Git aktualizované stažením a integrací práce, kterou ostatní nahráli do vzdáleného úložiště projektu. Tyto příkazy Gitu aktualizují místní úložiště:

  • Git načte všechna nová potvrzení, která ostatní nahráli do vzdáleného úložiště. Větve vzdáleného sledování v místní mezipaměti úložiště se aktualizují – místní větve zůstanou beze změny.
  • Sloučení Gitu integruje potvrzení z jedné nebo více zdrojových větví do cílové větve.
  • Rebase Gitu integruje potvrzení ze zdrojové větve do cílové větve, ale používá jinou strategii než sloučení Gitu.
  • Přijetí změn Git provede načtení a následnou sloučení nebo opětovné vytvoření základu pro integraci načtených potvrzení do aktuální místní větve.

Visual Studio používá podmnožinu těchto příkazů Gitu při synchronizaci místního úložiště se vzdáleným úložištěm.

Přehled pracovního postupu Gitu najdete v kurzu Gitu pro Azure Repos.

Tento článek obsahuje postupy pro následující úlohy:

  • Stažení změn s využitím načtení
  • Aktualizace větví pomocí sloučení nebo opětovného základu
  • Stažení změn a aktualizace větví pomocí pull

Stažení změn s využitím načtení

Git načte potvrzení vzdálené větve a odkazované objekty souborů, které neexistují v místním úložišti, a aktualizuje větve vzdáleného sledování v místní mezipaměti úložiště. Větve vzdáleného sledování jsou místně uložené kopie vzdálených větví jen pro čtení a nejsou to vaše místní větve. Načtení Gitu neaktualizuje vaše místní větve. Pokud má například vzdálené úložiště určené originbugfix3 větví, git načítá větev aktualizuje větev vzdáleného sledování pojmenovanou origin/bugfix3 a ne vaši místní bugfix3 větev. Větve vzdáleného sledování můžete použít k:

  • Porovnejte větev vzdáleného sledování s místní větví a zkontrolujte načtené změny.
  • Sloučí větev vzdáleného sledování do místní větve.
  • Vytvořte novou místní větev z větve pro vzdálené sledování.

Visual Studio 2022 poskytuje prostředí pro správu verzí Git pomocí nabídky Git, změn Gitu a kontextových nabídek v Průzkumník řešení. Visual Studio 2019 verze 16.8 také nabízí uživatelské rozhraní Git Team Exploreru. Další informace najdete na kartě Visual Studio 2019 – Team Explorer .

  1. V okně Git Changes (Změny Gitu) zvolte Fetch (Načíst). Pak vyberte odchozí/příchozí a otevřete okno úložiště Git.

    Snímek obrazovky s tlačítky Pro načtení a odkazem Příchozí v okně Změny Gitu v sadě Visual Studio 2019

    Můžete také zvolit možnost Načíst z nabídky Git.

    Snímek obrazovky s možností Načíst v nabídce Git v sadě Visual Studio 2019

  2. V okně Úložiště Git se načtené potvrzení zobrazí v části Příchozí. Výběrem načteného potvrzení zobrazíte seznam změněných souborů v tomto potvrzení. Výběrem změněného souboru zobrazíte rozdílové zobrazení změněného obsahu.

    Snímek obrazovky s nabídkou Úložiště Git v sadě Visual Studio 2019

Tip

Načtení neodstraní větve vzdáleného sledování v místní mezipaměti úložiště, které už nemají vzdálený protějšek. Konfigurace sady Visual Studio pro vyřazení zastaralých větví vzdáleného sledování během načítání:

  • Vyberte globální Nastavení Gitu možnosti správy>zdrojového kódu>nástroje.>
  • Při načítání nastavte vzdálené větve vyřazování na Truehodnotu .

Po načtení Gitu můžete porovnat místní větev s odpovídající větví pro vzdálené sledování a zjistit, co se ve vzdálené větvi změnilo. Pokud se rozhodnete aktualizovat aktuální místní větev o načtené změny, můžete provést sloučení nebo obnovení Gitu. Nebo můžete spustit přijetí změn Gitu, který kombinuje načtení Gitu se sloučením nebo opětovným základem Gitu. Sloučení Gitu i rebase Gitu aktualizují cílovou větev použitím potvrzení ze zdrojové větve. Sloučení Gitu a Git rebase ale používají různé strategie. Další informace naleznete v tématu Aktualizace větví pomocí sloučení nebo opětovného základu a kdy provést opětovné vytvoření základu a sloučení.

Aktualizace větví pomocí sloučení nebo opětovného základu

Sloučení Gitu a rebase Gitu integrují potvrzení ze zdrojové větve do aktuální místní větve (cílová větev). Sloučení Gitu provádí rychlou nebo rychlou hromadnou korespondenci. Sloučení bez rychlého přeposlání se také označuje jako trojcestné sloučení nebo skutečné sloučení. Git rebase je dalším typem sloučení. Tyto typy sloučení jsou znázorněny v následujícím diagramu.

Diagram znázorňující před a po potvrzení při použití sloučení a opětovného základu

Sloučení Gitu a rebase Gitu se ve velkém rozsahu používají v pracovním postupu Gitu. Při práci na místní funkci nebo větvi opravy chyb je běžné:

  1. Udržujte místní main větev aktuální se svým vzdáleným protějškem tím, že pravidelně táhnete a sloučíte vzdálené potvrzení.
  2. Integrujte aktualizace místní main větve do místní větve funkcí pomocí opětovného základu nebo sloučení.
  3. Zálohujte svou práci na místní větvi funkcí tak, že ji nasdílíte do odpovídající vzdálené větve.
  4. Po dokončení funkce vytvořte žádost o přijetí změn pro sloučení vzdálené větve funkcí do vzdálené main větve.

Tento přístup vám pomůže:

  • Mějte přehled o nedávné práci ostatních, které by mohly ovlivnit vaši práci.
  • Okamžitě vyřešte všechny konflikty mezi vaší prací a ostatními.
  • Použijte novou funkci na aktuální obsah projektu.
  • Získejte kontrolu vaší práce s žádostí o přijetí změn.

Sloučení

Pokud v případě sloučení Gitu existuje tip cílové větve ve zdrojové větvi, bude výchozím typem sloučení rychlé sloučení. V opačném případě bude výchozí typ sloučení bez rychlého přeposlání.

Rychlé sloučení Gitu nemůže mít nikdy konflikt při slučování, protože Git nepoužije rychlé sloučení, pokud se špička cílové větve rozbíhají od zdrojové větve. Git ve výchozím nastavení používá rychlé sloučení, kdykoli je to možné. Git například použije rychlou hromadnou korespondenci na místní větev, kterou aktualizujete, a to tak, že stáhne z větve vzdáleného protějšku.

Sloučení Gitu bez rychlého přesměrování vygeneruje novou cílovou větev "potvrzení sloučení", která integruje změny zdrojové větve se změnami cílové větve. Platné změny jsou změny provedené po posledním potvrzení, které je společné pro obě větve. V předchozím diagramu je potvrzení C posledním společným potvrzením v obou větvích. Pokud jakákoli změna zdrojové větve koliduje s jakoukoli změnou cílové větve, Git vás vyzve k vyřešení konfliktu při slučování. Potvrzení sloučení (L) obsahuje integrované zdrojové větve a změny cílové větve. Tipy ke zdrojové a cílové větvi (K a E) jsou nadřazené potvrzení sloučení. V historii potvrzení vaší větve je potvrzení sloučení užitečnou značkou pro operaci sloučení a jasně ukazuje, které větve byly sloučeny.

Sloučení Git změní jenom cílovou větev – zdrojová větev zůstane beze změny. Když narazíte na jeden nebo více konfliktů při sloučení, musíte je vyřešit, aby se sloučení dokončilo. Nebo můžete operaci sloučení zrušit a vrátit cílovou větev do předchozího stavu.

Další informace o možnostech a strategiích sloučení najdete v referenčních příručkách Gitu a strategiích sloučení Gitu.

Tip

Pokud je zdrojovou větví větev pro vzdálené sledování, ujistěte se, že je větev aktuální spuštěním gitového načtení před sloučením.

  1. V řádku nabídek zvolte Spravovat větve Gitu > a otevřete okno úložiště Git.

    Snímek obrazovky s možností Spravovat větve v nabídce Git v sadě Visual Studio 2019

  2. V okně Úložiště Git klikněte pravým tlačítkem na cílovou větev a vyberte Rezervovat.

    Snímek obrazovky s možností Rezervovat v okně Úložiště Git v sadě Visual Studio 2019

  3. Klikněte pravým tlačítkem na zdrojovou větev a vyberte Sloučit <zdrojovou větev> do <cílové větve>.

    Snímek obrazovky s možností Sloučit v okně Úložiště Git v sadě Visual Studio 2019

  4. Visual Studio zobrazí potvrzovací zprávu po úspěšném sloučení.

    Snímek obrazovky s potvrzovací zprávou o sloučení v okně úložiště Git v sadě Visual Studio 2019

    Pokud se sloučení zastaví kvůli konfliktům při slučování, Sada Visual Studio vás upozorní. Konflikty můžete vyřešit nebo zrušit sloučení a vrátit se do stavu před sloučením.

    Snímek obrazovky se zprávou o konfliktu při sloučení v okně úložiště Git v sadě Visual Studio 2019

Změna základny

Git znovu naváže historii potvrzení cílové větve tak, aby obsahoval všechna potvrzení zdrojové větve následované všemi potvrzeními cílové větve od posledního společného potvrzení. Dalším způsobem, jak ji zobrazit, je, že rebase Gitu přehrává změny v cílové větvi nad historií zdrojové větve. Pokud jakákoli změna zdrojové větve koliduje s jakoukoli změnou cílové větve, Git vás vyzve k vyřešení konfliktu při slučování. Git rebase nevytvoří potvrzení sloučení. Git rebase zejména mění sekvenci existujících potvrzení cílové větve, což není případ ostatních strategií sloučení. V předchozím diagramu obsahuje potvrzení K stejné změny jako K, ale má nové ID potvrzení, protože odkazuje zpět na potvrzení E místo jazyka C.

Git změní pouze cílovou větev – zdrojová větev zůstane beze změny. Když narazíte na jeden nebo více konfliktů při sloučení, musíte je vyřešit, aby se dokončila změna základu. Nebo můžete operaci opětovného základu zrušit a vrátit cílovou větev do předchozího stavu.

Pokud jste jediná osoba, která pracuje na vaší funkci nebo větvi opravy chyb, zvažte použití nového základu Gitu k integraci nových main potvrzení větví do ní. V opačném případě použijte sloučení Gitu. Další informace o opětovném použití Gitu a jejich použití najdete v tématu Použití změn s rebase a rebase vs.

Tip

Pokud je zdrojová větev vzdáleného sledování, ujistěte se, že je větev aktuální spuštěním Gitu načteného před rebase.

  1. Zvolte Git Manage Branches (Spravovat větve Gitu >) a otevřete okno úložiště Git.

    Snímek obrazovky s možností Spravovat větve v nabídce Git v sadě Visual Studio 2019

  2. V okně Úložiště Git klikněte pravým tlačítkem na cílovou větev a vyberte Rezervovat.

    Snímek obrazovky s možností Rezervovat v místní nabídce větve v okně úložiště Git v sadě Visual Studio 2019

  3. Klikněte pravým tlačítkem myši na zdrojovou větev a vyberte Znovu naskladněnou <cílovou větev> na <zdrojovou větev>.

    Snímek obrazovky s možností Rebase v místní nabídce větve v okně úložiště Git v sadě Visual Studio 2019

  4. Visual Studio zobrazí potvrzovací zprávu po úspěšném obnovení základu.

    Snímek obrazovky s potvrzovací zprávou o obnovení základu v okně úložiště Git v sadě Visual Studio 2019

    Pokud dojde k zastavení opětovného základu kvůli konfliktům při slučování, Sada Visual Studio vás upozorní. Konflikty můžete vyřešit nebo zrušit základ a vrátit se do stavu předběžného základu.

    Snímek obrazovky se zprávou o konfliktu opětovného základu v okně úložiště Git v sadě Visual Studio 2019

Stažení změn a aktualizace větví pomocí pull

Ve výchozím nastavení git pull kombinuje načtení Gitu a sloučení Gitu a aktualizuje aktuální místní větev z jeho vzdáleného protějšku. Pokud chcete, git pull může místo sloučení Gitu provést rebase Gitu.

Na rozdíl od načtení Gitu bude přijetí změn Git aktualizovat vaši aktuální místní větev okamžitě po stažení nových potvrzení ze vzdáleného úložiště. Přijetí změn Git použijte, když víte, že chcete aktualizovat aktuální místní větev hned po načtení Gitu.

Tip

Konfigurace opětovného základu sady Visual Studio místo sloučení při přijetí změn:

  1. V nabídce Git přejděte do globálního Nastavení Gitu možnosti nástroje>správy>zdrojového kódu.>
  2. Nastavení místní větve Rebase při vyžádání možnosti Truena .
  1. V okně Git Changes (Změny Gitu) zvolte Pull (Vyžádat).

    Snímek obrazovky s tlačítkem Vyžádat v okně Změny Gitu v sadě Visual Studio 2019

    V nabídce Git můžete také zvolit možnost Vyžádat .

    Snímek obrazovky s možností Vyžádat v nabídce Git v sadě Visual Studio 2019

  2. Po dokončení operace vyžádání změn se zobrazí potvrzovací zpráva.

    Snímek obrazovky s potvrzovací zprávou o přijetí změn v okně Změny Gitu v sadě Visual Studio 2019

    Pokud dojde ke konfliktům během slučovací části operace vyžádání změn, Sada Visual Studio vás upozorní. Konflikty můžete vyřešit nebo zrušit sloučení a vrátit se do stavu před sloučením.

    Snímek obrazovky se zprávou o konfliktu přijetí změn v okně Změny Gitu v sadě Visual Studio 2019

Poznámka:

Synchronizace v sadě Visual Studio provede vyžádání změn a pak nasdílení změn pro synchronizaci místní a vzdálené větve. Další informace o synchronizaci najdete v tématu Použití git fetch, pull, push a sync pro správu verzí v sadě Visual Studio.

Další kroky