Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
služby Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022
Git použijte pro zdrojové soubory, Azure Artifacts pro závislosti a Git LFS pro velké binární soubory, které se často mění. Pokud už úložiště obsahuje velké soubory, pomůže vám tento článek rozhodnout, co se má v Gitu zachovat, co se má přesunout a kdy odebrat binární soubory z historie.
Rozhodněte se, kam se mají jednotlivé soubory ukládat.
Pokud se rozhodnete, co dělat se soubory, které už jsou v úložišti, začněte tady:
- Udržujte zdrojové soubory, skripty a textové soubory v Gitu.
- Přesuňte závislosti a opakovaně použitelné balíčky do Azure Artifacts správy balíčků.
- Git LFS používejte pro velké binární soubory, které se často mění a nejsou dobře rozdělené.
- Odeberte velké binární soubory z historie repozitáře, pokud už byly do repozitáře přidány a už tam nepatří. Viz Odebrání velkých souborů z úložiště.
Pokud je váš repozitář už velký, před volbou způsobu ukládání zkontrolujte limity repozitáře a pushů. Podívejte se na limity Gitu pro soubor, vložení a cestu, které ovlivňují velké úložiště.
Volba správné možnosti úložiště pro Git, správu balíčků a Git LFS
Tuto tabulku použijte k výběru nejvhodnějšího umístění.
| Typ souboru nebo scénář | Používání |
|---|---|
| Zdrojový kód, skripty a textové soubory | Git |
| Závislosti a opakovaně použitelné balíčky | správa balíčků Azure Artifacts |
| Velké binární soubory, které se často mění | Git LFS |
| Azure DevOps Server Git LFS a Kerberos | Projděte si pokyny ke Kerberosu v tomto článku i odkazovaný článek na konci. |
Git funguje nejlépe pro textové zdrojové soubory a další obsah, který se mění v malých a čitelných přírůstcích.
Velké binární soubory nejsou vhodné pro běžné úložiště Git, protože:
- Git ukládá rozdíly ve verzích efektivně pro zdrojový kód, skripty a textové soubory.
- Velké soubory, které se zcela mění mezi verzemi, se nekomprimuje ani nerozlišuje dobře.
- Velké binární soubory prodlužují dobu klonování, fetchování, vytváření větví a checkoutu.
Pokud do úložiště přidáte velké a nepřístupné soubory, jako jsou binární soubory, zachováte v úložišti úplnou kopii těchto souborů při každém potvrzení změny. Pokud ve vašem úložišti existuje mnoho verzí těchto souborů, dramaticky to zvyšuje dobu potřebnou pro odběr, větvení, přenos dat a klonování vašeho kódu.
Které soubory patří do Gitu?
Použijte nejjednodušší možnost, která odpovídá typu souboru a jak často se mění.
Uchovávejte v Gitu zdrojový kód, ne závislosti
Použijte Git pro soubory, které váš tým upravuje přímo. Udržujte závislosti mimo úložiště a doručujte je prostřednictvím správy balíčků.
- Vložte zdrojové soubory do Gitu.
- Ukládejte knihovny DLL, knihovní soubory a další závislosti mimo repozitář.
- Použijte správu balíčků ke správě verzí a nasazování závislostí.
Správa balíčků při nasazování balíčku seskupí závislosti a nainstaluje soubory do systému. Balíčky jsou verzovány, aby se zajistilo, že kód testovaný v jednom prostředí bude fungovat stejně v jiném prostředí, pokud jsou v prostředích nainstalovány stejné balíčky.
Nepousílejte výstupy sestavení
Git používejte pro zdrojový kód, ne pro výstupy sestavení ani testovací artefakty.
- Nekomitujte binární soubory, logy, trasovací výstup ani diagnostická data.
- Sdílejte protokoly a sledujte informace prostřednictvím sledování pracovních položek nebo sdílení souborů týmu.
Ukládání malých binárních souborů v Gitu
Git používejte pro malé binární soubory jenom v případě, že se mění zřídka.
- Mezi dobré příklady patří webové obrázky, ikony a další malé umělecké prostředky.
- Uchovávání těchto souborů v Gitu zachovává konzistentní pracovní postup pro tým.
Důležité
I malé binární soubory můžou způsobit problémy, pokud se často aktualizují. Například 100 změn binárního souboru o velikosti 100 kB používá tolik úložiště jako 10 změn binárního souboru o velikosti 1 MB. Vzhledem k četnosti aktualizací menší binární soubor zpomaluje výkon větvení častěji než velký binární soubor.
Vyhněte se velkým, často aktualizovaným binárním prostředkům
Git nemůže efektivně ukládat velké binární soubory, protože se tyto soubory často mění mezi verzemi a obvykle jsou už komprimované.
- Git ukládá celý obsah každé verze.
- Velikost úložiště se v průběhu času zvětšuje.
- Operace klonování, vytváření větví, načítání a checkoutu se zpomalují.
Protože Git musí ukládat celý obsah každé verze, deltifikace a komprese moc nepomáhají. S tím, jak se tyto soubory hromadí, úložiště se zvětší, větvení se zkrátí a časy klonování se zvětší.
Strategie pro velké binární zdrojové soubory
- Nekomitujte komprimované archivy. Rozbalte data a místo nich commitněte zdrojové soubory, u nichž lze sledovat rozdíly.
- Vyhněte se potvrzení zkompilovaného kódu a dalších binárních závislostí. Sestavte je nebo je dodejte prostřednictvím systému správy balíčků.
- Uložte konfiguraci a další strukturovaná data v rozdílných formátech prostého textu, jako je JSON.
Co je úložiště Git Large File (Git LFS)?
Úložiště Git Large File Storage (LFS) použijte pro zdrojové soubory, které se často mění a výrazně se liší mezi verzemi.
Git LFS:
- Ukládá ukazatele na velké soubory v úložišti místo celého obsahu souboru.
- Uloží binární obsah do samostatného vzdáleného úložiště.
- Stáhne správnou verzi při klonování nebo přepínání větví.
- Udržuje normální pracovní postup Gitu pro velké binární soubory bez přesunu celého obsahu souboru prostřednictvím každé změny klonu a větve.
Výhody Git LFS
Git LFS udržuje pracovní postup Gitu při přesouvání velkého obsahu souboru z hlavního úložiště.
- Váš tým může dál používat stejný kompletní pracovní postup Gitu.
- Velké soubory zůstávají mimo historii hlavního úložiště, což pomáhá udržovat úložiště spravovatelné.
- Uzamčení souborů podporuje sdílenou práci na velkých, nešifrovatelných prostředcích, jako jsou videa, zvuky a herní mapy.
Azure DevOps Services plně podporuje Git LFS a nabízí je zdarma. Pokud chcete použít LFS, nainstalujte klienta Git LFS, nakonfigurujte sledování souborů, které chcete uložit do LFS, a potom nasdílejte změny do Azure Repos.
Pokyny týkající se Azure DevOps Server a protokolu Kerberos najdete v tématu Kerberos a Git LFS.
Omezení Git LFS
Git LFS má stále několik nevýhod, se kterými je třeba počítat:
- Každý klient Gitu musí nainstalovat klienta Git LFS a porozumět konfiguraci sledování.
- Pokud klient není nainstalován nebo správně nakonfigurován, při klonování se místo binárního souboru stáhnou data ukazatele.
- Git nemůže sloučit různé verze binárního souboru, takže spolužáci stále potřebují koordinovat změny.
- Git LFS poskytuje zamykání souborů, ale uživatelé si před zahájením práce musí stáhnout nejnovější kopii.
- Azure Repos nepodporuje Secure Shell (SSH) pro úložiště se sledovanými soubory Git LFS.
- Přetažením binárního souboru do webového rozhraní se do repozitáře uloží samotný binární soubor, nikoli ukazatel LFS.
- Velké nahrávání může být omezené dostupným volným místem, aktuálním zatížením a limitem nahrávání na jednu hodinu.
Formát souboru Git LFS
Soubor, který zapíšete do úložiště pro sledovaný soubor Git LFS, má několik řádků s párem klíč/hodnota na každém řádku:
version https://git-lfs.github.com/spec/v1
oid a747cfbbef63fc0a3f5ffca332ae486ee7bf77c1d1b9b2de02e261ef97d085fe
size 4923023
Poznámka:
- Adresa URL GitHubu zahrnutá pouze pro hodnotu verze definuje typ souboru ukazatele LFS. Nejedná se o odkaz na binární soubor.
- Pro Git LFS starší než 2.10.0 s Azure DevOps Server upgradujte na Git LFS 2.10.0 nebo novější, abyste mohli používat ověřování protokolem Kerberos. Aktuální pokyny najdete v tématu Kerberos a Git LFS a Změna konfigurace Azure DevOps Server pro použití protokolu Kerberos místo NTLM.
Plánování pro Azure DevOps Server a protokol Kerberos
Pokud používáte Azure DevOps Server a ověřování systému Windows, počítejte při používání Git LFS s protokolem Kerberos. Git LFS 2.10.0 a novější podporuje ověřování protokolem Kerberos.
Pokud potřebujete aktualizovat starší pokyny pro Azure DevOps Server, začněte s Kerberos a Git LFS a souvisejícími pokyny k ověřování pro Azure DevOps Server.