Práce s velkými úložišti

Dokončeno

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í

snímek obrazovky s ikonou Scalar

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: