Arbeiten mit großen Repositorys

Abgeschlossen

Git ist ein großartiges Versionskontrollsystem, das weit verbreitet und empfohlen wird, aber einige Bedenken sollten bei der Arbeit mit großen Repositorys getroffen und behandelt werden.

Obwohl eine lokale Kopie von Repositorys in einem verteilten Versionskontrollsystem funktionsfähig ist, kann dies ein erhebliches Problem sein, wenn große Repositorys vorhanden sind.

Microsoft hat dieses Problem beispielsweise beim Migrieren eines Repositorys mit über 300 GB Daten von einem internen System zu Git entdeckt.

Warum Repositorys groß werden

Für große Repositorys gibt es zwei Hauptursachen:

  • Lange Geschichte
  • Große Binärdateien

Flacher Klon

Wenn Entwickler nicht den gesamten verfügbaren Verlauf in ihren lokalen Repositories benötigen, kann es sinnvoll sein, einen flachen Klon zu verwenden.

Es spart sowohl Platz auf lokalen Entwicklungssystemen als auch bei der Zeit für die Synchronisierung.

Sie können die Tiefe des Klons angeben, den Sie ausführen möchten:

git clone --depth [depth] [clone-url]

Sie können Klonen auch reduzieren, indem Sie Verzweigungen filtern oder nur eine einzelne Verzweigung klonen.

VFS für Git

VFS für Git hilft bei großen Repositorys. Er erfordert einen Git LFS-Client.

Typische Git-Befehle sind nicht betroffen, aber das Git LFS arbeitet mit dem Standarddateisystem zusammen, um erforderliche Dateien im Hintergrund herunterzuladen, wenn Sie Dateien vom Server benötigen.

Der Git LFS-Client wurde als Open Source veröffentlicht. Das Protokoll ist ein einfaches Protokoll mit vier Endpunkten, die REST-Endpunkten ähneln.

Weitere Informationen zu großen Repositorys finden Sie unter: Arbeiten mit großen Dateien und virtuellen Dateisystem für Git: Aktivieren von Git im Unternehmensmaßstab.

Skalar

Screenshot des Skalarsymbols.

Skalar ist eine .NET Core-Anwendung, die für Windows und macOS verfügbar ist. Mit Tools und Erweiterungen für Git, die es erlauben, sehr große Repositorys zu verwenden, können Sie die Leistung Ihrer Git-Befehle maximieren. Microsoft verwendet es für Windows- und Office-Repositorys.

Wenn Azure Repos Ihr Repository hosten, können Sie ein Repository mithilfe des GVFS-Protokollsklonen.

Dadurch werden einige erweiterte Git-Features aktiviert, z. B.:

  • Partieller Klon: reduziert die Zeit, um ein funktionierendes Repository zu erhalten, indem nicht alle Git-Objekte sofort heruntergeladen werden.
  • Hintergrundvorschub: lädt Git-Objektdaten von allen Remotedaten jede Stunde herunter, wodurch die Zeit für Git-Abrufaufrufe im Vordergrund reduziert wird.
  • Sparse-Checkout: beschränkt die Größe Ihres Arbeitsverzeichnisses.
  • Dateisystemmonitor: verfolgt die zuletzt geänderten Dateien und beseitigt die Notwendigkeit, dass Git die gesamte Arbeitsstruktur scannen muss.
  • Commit-Graph: beschleunigt Commit-Durchläufe und Erreichbarkeitsberechnungen und verkürzt die Ausführungszeit von Befehlen wie git log.
  • Multi-Pack-Index: ermöglicht schnelle Objektsuche in vielen Paketdateien.
  • Inkrementelles Repack: Repackt die verpackten Git-Daten in weniger Packdateien, ohne gleichzeitige Befehle zu unterbrechen, indem der Multi-Pack-Index verwendet wird.

Anmerkung

Wir aktualisieren die Liste der Features, die Scalar automatisch konfiguriert, wenn eine neue Git-Version veröffentlicht wird.

Weitere Informationen finden Sie unter: