Práce s velkými úložišti
Git je široce přijímaný a doporučený systém správy verzí, ale při práci s velkými úložišti je třeba zvážit několik obav a postarat se o ně.
Zatímco místní kopie úložišť v distribuovaném systému správy verzí je funkční, může to být významný problém, když jsou velká úložiště na místě.
Microsoft například zjistil tento problém při migraci úložiště s více než 300 GB dat z interního systému do Gitu.
Proč se úložiště stávají velkými
Pro velká úložiště existují dvě hlavní příčiny:
- Dlouhá historie
- Velké binární soubory
Mělký klon
Pokud vývojáři nepotřebují v místních úložištích veškerou dostupnou historii, je dobrou volbou implementace mělké klonování.
Šetří prostor v místních vývojových systémech a čas potřebný k synchronizaci.
Můžete zadat hloubku klonu, který chcete spustit:
git clone --depth [depth] [clone-url]
Klony můžete také omezit filtrováním větví nebo klonováním pouze jedné větve.
VFS pro Git
VFS pro Git pomáhá s velkými úložišti. Vyžaduje klienta Git LFS.
Typické příkazy Gitu nejsou ovlivněné, ale Git LFS pracuje se standardním systémem souborů a stahuje potřebné soubory na pozadí, když potřebujete soubory ze serveru.
Klient Git LFS byl vydán jako open source. Protokol je jednoduchý a má čtyři koncové body podobné koncovým bodům REST.
Další informace o velkých úložištích najdete v tématu: Práce s velkými soubory a Virtuální souborový systém pro Git: Povolení Gitu ve velkém měřítku.
Skalární
Scalar je aplikace .NET Core dostupná pro Windows a macOS. S nástroji a rozšířeními pro Git, které umožňují velmi velkým úložištím maximalizovat výkon vašich příkazů Git. Microsoft ho používá pro úložiště Windows a Office.
Pokud Azure Repos hostuje vaše úložiště, můžete úložiště naklonovat pomocí protokolu GVFS.
Dosahuje toho povolením některých pokročilých funkcí Gitu, jako jsou:
- částečné klonování: zkracuje čas na získání funkčního úložiště tím, že nestahuje všechny objekty Gitu hned.
- Předběžné načítání na pozadí: stahuje data objektů Git ze všech vzdálených úložišť každou hodinu, což zkracuje dobu načítání volání gitu v popředí.
- Sparse checkout: omezuje velikost pracovního adresáře.
- monitorování systému souborů : sleduje nedávno upravené soubory a eliminuje potřebu Gitu kontrolovat celý pracovní strom.
- Commit-graph: urychluje procházky po potvrzeních a výpočty dosažitelnosti, čímž zrychluje příkazy jako git log.
- Multi-pack-index: umožňuje rychlé vyhledávání objektů v mnoha souborech balíčku.
- Přírůstkové opětovné zabalení: Opětovné zabalení dat Gitu do menšího počtu balíčkových souborů aniž by rušil probíhající příkazy pomocí indexu s více balíčky.
Poznámka
Aktualizujeme seznam funkcí, které Scalar automaticky konfiguruje při vydání nové verze Gitu.
Další informace najdete tady: