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é origin
bugfix3
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
- Visual Studio 2019 – nabídka Git
- Visual Studio 2019 – Team Explorer
- Příkazový řádek Gitu
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 .
V okně Git Changes (Změny Gitu) zvolte Fetch (Načíst). Pak vyberte odchozí/příchozí a otevřete okno úložiště Git.
Můžete také zvolit možnost Načíst z nabídky Git.
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.
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
True
hodnotu .
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.
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é:
- 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í. - Integrujte aktualizace místní
main
větve do místní větve funkcí pomocí opětovného základu nebo sloučení. - 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.
- 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.
- Visual Studio 2022
- Visual Studio 2019 – nabídka Git
- Visual Studio 2019 – Team Explorer
- Příkazový řádek Gitu
V řádku nabídek zvolte Spravovat větve Gitu > a otevřete okno úložiště Git.
V okně Úložiště Git klikněte pravým tlačítkem na cílovou větev a vyberte Rezervovat.
Klikněte pravým tlačítkem na zdrojovou větev a vyberte Sloučit <zdrojovou větev> do <cílové větve>.
Visual Studio zobrazí potvrzovací zprávu po úspěšném sloučení.
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.
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.
- Visual Studio 2022
- Visual Studio 2019 – nabídka Git
- Visual Studio 2019 – Team Explorer
- Příkazový řádek Gitu
Zvolte Git Manage Branches (Spravovat větve Gitu > ) a otevřete okno úložiště Git.
V okně Úložiště Git klikněte pravým tlačítkem na cílovou větev a vyberte Rezervovat.
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>.
Visual Studio zobrazí potvrzovací zprávu po úspěšném obnovení základu.
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.
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:
- V nabídce Git přejděte do globálního Nastavení Gitu možnosti nástroje>správy>zdrojového kódu.>
- Nastavení místní větve Rebase při vyžádání možnosti
True
na .
- Visual Studio 2022
- Visual Studio 2019 – nabídka Git
- Visual Studio 2019 – Team Explorer
- Příkazový řádek Gitu
V okně Git Changes (Změny Gitu) zvolte Pull (Vyžádat).
V nabídce Git můžete také zvolit možnost Vyžádat .
Po dokončení operace vyžádání změn se zobrazí potvrzovací zpráva.
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.
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.