Nejčastější dotazy ke Gitu

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

V tomto článku najdete odpovědi na nejčastější dotazy týkající se Gitu, které jsou speciálně přizpůsobené pro Azure Repos. Bez ohledu na to, jestli chcete spravovat vzdálené větve, identifikovat aktuální větev nebo zpracovávat jiné méně běžné úlohy Gitu, najdete v této příručce užitečné tipy a řešení. V následujících částech se dozvíte, jak vylepšit pracovní postup Gitu a vyřešit běžné problémy.

Jak můžu snadno stáhnout vzdálenou větev do místního úložiště?

Nejprve se ujistěte, že máte origin nakonfigurované úložiště. To byste měli mít, pokud jste naklonovali své úložiště pomocí git clone. Když si projdete větev, která neexistuje místně, Git zkontroluje, jestli existuje vzdálená větev se stejným názvem. Pokud existuje, Git vytvoří místní větev, která odkazuje na vzdálenou větev. Slouží git pull ke stažení potvrzení a místní aktualizaci historie větví.

Jak zjistím, ve které větvi pracujem?

Spuštěním git branch bez argumentů zobrazte místní větve a zvýrazněte ten, který jste si rezervovali. Stavový řádek v sadě Visual Studio také zobrazuje aktuální větev při práci s projektem uloženým v místním úložišti Git.

Kdy mám provést potvrzení Gitu?

Osvědčeným postupem je provést samostatná potvrzení pro logicky odlišné změny. Potvrzení si můžete představit jako položky v logbooku. Kdykoli provedete změnu, která stojí za zmínku, zaznamenejte ji v potvrzení. Oblíbeným přístupem je umožnit časté místní potvrzení, ale potlačit je prostřednictvím opětovného zbavování před nasdílením . To poskytuje flexibilitu při zachování zjednodušené historie potvrzení.

Pokud každá větev uchovává celou historii potvrzení, není to, aby historie potvrzení *main* byla v průběhu času obtížná?

Velké projekty s mnoha potvrzeními a přispěvateli můžou vést k main historii větví, která odráží vývoj větví témat více než celkový projekt. Git umožňuje kondenzovat potvrzení ve větvích prostřednictvím potvrzení squashingu a opětovného použití. Potvrzení squashing způsobí, že historie větví je méně podrobná, což zjednodušuje historii potvrzení v hlavní větvi po sloučení.

Jak zjistím, kdo provedl konkrétní změnu souboru?

git blame Pomocí příkazu zjistěte, kdo provedl konkrétní změnu souboru. Z místního úložiště můžete spustit git blame s parametrem -L a určit řádky, které vás zajímají. Blame vytvoří formátovaný výstup zobrazující potvrzení, které naposledy aktualizovalo řádek, a jméno osoby, která potvrzení provedla.

> git blame Example_repo -L 20,+40  # show the blame output for the next 40 lines starting at line 20

215d1108 (Example User 2015-11-21 09:54:23 -0800 20) line 20 of the code
215d1108 (Example User 2015-11-21 09:54:23 -0800 21) line 21 of the code
215d1108 (Example User 2015-11-21 09:54:23 -0800 22) line 22 of the code

Blame vyhledá historii potvrzení za vás. Historii souboru můžete také zkontrolovat na webovém portálu a zjistit, kdo změnu provedl a kdy. Otevřete Průzkumníka kódu pro vaše úložiště a větev a pak vyberte soubor, který vás zajímá. Azure Repos zobrazuje úplnou historii potvrzení pro tento soubor v aktuální větvi.

Udělal(a) jsem změny některých souborů a teď se nemůžu podívat na jinou větev nebo změnit základ práce.

Rezervace jiné větve v Gitu ovlivňuje stav souborů ve vašem systému souborů. Git používá historii potvrzení, abyste měli jistotu, že pracujete se soubory, které představují stav vaší větve. Pokud se pokusíte změnit větve v době, kdy máte nepotvrzené změny, budou tyto změny při rezervaci přepsány. Vzhledem k tomu, že Git nechce, abyste omylem ztratili svoje změny, zabrání tomu, aby se rezervace neprodávalo. K dispozici jsou dvě možnosti:

Žádost o přijetí změn nemůže sloučit s touto zprávou: Nejde sloučit automaticky: Jeden z interních objektů Git (objekt blob, strom, potvrzení nebo značka) je příliš velký, což způsobilo výjimku TF401022. Můžete se pokusit použít LFS, rozdělit sloučení nebo velké potvrzení na několik malých.

Tento problém souvisí s konflikty při slučování ve velkých binárních souborech. Aktuální limit souborů je 100 MB. Alternativním řešením je vyřešit konflikty při sloučení místně sloučením cíle do zdroje, řešením konfliktů a nasdílením změn.

Git LFS (Velké úložiště souborů) se doporučuje pro ukládání velkých binárních souborů, a to nejen kvůli zabránění konfliktům, ale také ke správě celkové velikosti úložiště, která ovlivňuje časy klonování a zápisu.

Udělal jsem nějakou práci, ale potřebuji přepnout na něco jiného. Jak můžu uložit práci na později bez potvrzení změn?

Pokud chcete uložit změny bez potvrzení změn, použijte Git stash. Stash uloží aktuální fázované a neoznačené změny ve vaší větvi a vrátí větev do stavu posledního potvrzení. Potom můžete přepnout na jinou větev, provést svoji práci a později spustit stash apply obnovení změn.

git stash
Saved working directory and index state WIP on feature1: be26067 updated endpoint docs
HEAD is now at be26067

Při spuštění [git stash apply] se u aktuální větve použijí naposledy provedené změny. Pokud dojde ke konfliktu, nástroj [stash] obnoví změny souborů, které nejsou v konfliktu, a vytvoří v souborech, které to dělají, konfliktní značky. Změny byste v tomto případě měli sloučit ručně.

Až budete hotovi se stashem, odstraňte ho pomocí [git stash drop]. Tento příkaz odebere poslední sadu stashed změn.

Můžete mít více staší, ale jejich správa vyžaduje větší ruční manipulaci, protože musíte explicitně použít a odstranit stashes. Další informace najdete v dokumentaci ke službě Git Stash.

Jak můžu změnit výchozí editor nástrojů příkazového řádku Gitu?

Git příkazového řádku ve výchozím nastavení používá editor příkazového řádku při dotazování na potvrzení zpráv, provádění rebase a další práci, která vyžaduje další informace k dokončení. Výchozí editor je nakonfigurovaný pomocí git config:

> git config core.editor _path_to_editor_ _options_to_editor_

Git pro Windows usnadňuje nastavení poznámkového bloku jako editoru:

> git config core.editor notepad

Tento příkaz nakonfiguruje Poznámkový blok systému Windows tak, aby upravil informace Gitu podle potřeby a správně předával text z Gitu do Poznámkového bloku. Můžete také zadat

> git config format.commitMessageColumns 72 

Chcete-li zachovat textové sloupce ve zprávách potvrzení do upřednostňovaného 72 a zalamování řádků po dosažení limitu znaků na řádku.

Jak můžu změnit uživatelské jméno a e-mail zobrazený v potvrzeních?

Git vloží do každého potvrzení uživatelské jméno a e-mailovou adresu a Azure Repos tyto informace používá při prohlížení potvrzení a při práci s žádostmi o přijetí změn. Pokud pracujete na příkazovém řádku, můžete aktualizovat jméno a e-mailové informace zobrazené pomocí git config příkazu:

> git config --global user.email "example-user@example-site.com"
> git config --global user.name "Example User"

Tato --global možnost nastaví e-mail a název zahrnutý v potvrzeních pro všechna úložiště Git v tomto systému. Pokud chcete změnit nastavení jednoho úložiště, musíte změnit adresář, ve kterém se nachází úložiště Git, a spustit výše uvedené příkazy bez příznaku --global .

Můžete také změnit nastavení jména a e-mailu ze sady Visual Studio. V nabídce Git vyberte Nastavení v dialogovém okně Možnosti, vyberte Globální nastavení Gitu nebo Obecné nastavení>úložiště Git.

Visual Studio 2019 verze 16.8 a novější verze poskytují prostředí pro správu verzí Gitu při zachování uživatelského rozhraní Git Team Exploreru. Pokud chcete použít Team Explorer, zrušte zaškrtnutí políčka Možnosti nástrojů>>Ve verzi Preview Nové>uživatelské prostředí Gitu na řádku nabídek. Funkce Gitu můžete provádět zaměnitelně z libovolného rozhraní.

V Team Exploreru zvolte Nastavení a v části Git vyberte odkaz Globální nastavení nebo Nastavení úložiště.