Muster leistungsverzeichnis reinigung

Tuesday 28th July 2020 22.01 Published by

Schreiben Sie eine Reihe von Mustern in die Sparse-Checkout-Datei, wie sie als Eine Liste von Argumenten nach dem Set-Unterbefehl angegeben wird. Aktualisieren Sie das Arbeitsverzeichnis entsprechend den neuen Mustern. Aktivieren Sie die Konfigurationseinstellung core.sparseCheckout, wenn sie noch nicht aktiviert ist. Wenn das Muster keinen Schrägstrich / enthält, behandelt Git es als Shell-Glob-Muster und sucht nach einer Übereinstimmung mit dem Pfadnamen relativ zum Speicherort der .gitignore-Datei (relativ zur obersten Ebene des Arbeitsbaums, wenn nicht aus einer .gitignore-Datei). Bevor wir weitergehen, sollten wir uns zunächst kurz ein wichtiges Konzept in Linux ansehen – das Matching von Dateinamenmustern, das es uns ermöglicht, unser Problem zu behandeln. git-sparse-checkout – Initialisieren und ändern Sie die spärliche Checkout-Konfiguration, wodurch das Auschecken auf eine Reihe von Pfaden reduziert wird, die durch eine Liste von Mustern angegeben werden. Die Datei $GIT_DIR/info/sparse-checkout wird verwendet, um die skip-worktree-Referenzbitmap zu definieren. Wenn Git das Arbeitsverzeichnis aktualisiert, werden die skip-worktree-Bits im Index basierend auf dieser Datei aktualisiert. Die Dateien, die den Mustern in der Datei entsprechen, werden im Arbeitsverzeichnis angezeigt, der Rest nicht. Muster, die aus einer .gitignore-Datei im selben Verzeichnis wie der Pfad oder in einem übergeordneten Verzeichnis gelesen werden, wobei Muster in den dateien höheren Ebenen (bis zur obersten Ebene des Arbeitsbaums) von denen in Dateien der unteren Ebene bis hin zum Verzeichnis, das die Datei enthält, überschrieben werden. Diese Muster stimmen relativ zum Speicherort der .gitignore-Datei überein.

Ein Projekt enthält normalerweise solche .gitignore-Dateien in seinem Repository, die Muster für Dateien enthalten, die als Teil des Projektbuilds generiert wurden. aber für das Verzeichnis mit Dateien ohne Erweiterung verwende ich den Befehl “rm”, der unten die Berechtigung zum Löschen jeder Datei anfordert. Aktualisieren Sie die spärliche Auscheckdatei, um zusätzliche Muster einzuschließen. Standardmäßig werden diese Muster aus den Befehlszeilenargumenten gelesen, sie können jedoch mit der Option –stdin aus stdin gelesen werden. Wenn core.sparseCheckoutCone aktiviert ist, werden die angegebenen Muster als Verzeichnisnamen wie im Set-Unterbefehl interpretiert. Der vollständige Mustersatz ermöglicht beliebige Musterübereinstimmungen und komplizierte Ein-/Ausschlussregeln. Dies kann bei der Aktualisierung des Indexes zu O(N*M)-Musterübereinstimmungen führen, wobei N die Anzahl der Muster und M die Anzahl der Pfade im Index ist. Um dieses Leistungsproblem zu bekämpfen, ist ein eingeschränkterer Mustersatz zulässig, wenn core.sparseCheckoutCone aktiviert ist. Dieser letzte Ansatz funktioniert jedoch nur mit bash.

Hier speichert die GLOBIGNORE-Variable eine durch Doppelpunkte getrennte Musterliste (Dateinamen), die von der Pfadnamenerweiterung ignoriert werden soll. Zwei aufeinanderfolgende Sternchen (“**”) in Mustern, die mit dem vollständigen Pfadnamen übereinstimmen, können eine besondere Bedeutung haben: Wenn core.sparseCheckoutCone=true, dann analysiert Git die spärlich auscheckende Datei, die Muster dieser Typen erwartet. Git wird warnen, wenn die Muster nicht übereinstimmen.

Categorised in: Uncategorized

|