Ziehen Sie einen bestimmten Ordner in Git
Dieser Artikel veranschaulicht, wie wir einen bestimmten Ordner aus einem Remote-Git-Repository abrufen können. Dieser Ansatz ist praktisch, wenn wir an einigen Dateien aus einem großen Repository arbeiten möchten.
Sie können viel Zeit sparen, wenn Sie einen einzelnen Ordner aus einem 2 GB großen Repository herunterladen. Lassen Sie uns ohne weiteres Umschweife direkt einsteigen.
Ziehen Sie einen bestimmten Ordner in Git
Der einfachste Weg, den wir verwenden können, um einen bestimmten Ordner zu ziehen, ist die Verwendung der Git-Funktion Sparse Checkout
. Wir können das Konzept erklären, aber ein Beispiel ist für dieses Szenario angemessen.
Im folgenden Beispiel haben wir ein auf GitHub gehostetes Remote-Repository mit Dutzenden von Dateien, die in Verzeichnissen angeordnet sind. Wir wollen den Ordner apps
ziehen und bearbeiten.
Wir werden die folgenden Schritte ausführen, um den Ordner apps
zu ziehen.
Auf Git Bash erstellen wir ein Verzeichnis, um unseren Ordner apps
zu speichern.
$ mkdir Djangp-datta-able
Navigieren Sie mit dem Befehl cd
in Ihr Verzeichnis und initialisieren Sie ein Git-Repository.
$ git init
Hier sind die aktuellen Inhalte unseres lokalen Repositorys.
$ ls -la
total 4
drwxr-xr-x 1 pc pc 0 Aug 31 09:45 ./
drwxr-xr-x 1 pc pc 0 Aug 31 09:44 ../
drwxr-xr-x 1 pc pc 0 Aug 31 09:45 .git/
Als Nächstes fügen wir das Remote-Repository, aus dem wir ziehen möchten, zu unserem lokalen Repo hinzu. Wir werden rennen:
$ git remote add origin https://github.com/app-generator/django-datta-able.git
Sobald dies erledigt ist, können wir fortfahren, die sparse checkout
-Eigenschaften in unserem Repo zu aktivieren. Wir verwenden den Befehl git config
, wie unten gezeigt.
$ git config core.sparsecheckout true
Wir können dann den Ordner apps
zur Eigenschaft sparse checkout
hinzufügen, wie unten gezeigt.
$ echo 'apps' >> .git/info/sparse-checkout
Sie können apps
durch das Verzeichnis ersetzen, aus dem Sie ziehen möchten. Sie können der Funktion sparse checkout
auch mehrere Verzeichnisse hinzufügen.
Was übrig bleibt, ist das Pullen aus dem Remote-Repository. Wir werden rennen:
$ git pull origin master
Der obige Befehl ruft den Ordner apps
ab und klont ihn in unser lokales Verzeichnis. Lassen Sie uns den Inhalt unseres lokalen Repos überprüfen.
$ ls -la
total 8
drwxr-xr-x 1 pc pc 0 Aug 31 09:49 ./
drwxr-xr-x 1 pc pc 0 Aug 31 09:44 ../
drwxr-xr-x 1 pc pc 0 Aug 31 09:50 .git/
drwxr-xr-x 1 pc pc 0 Aug 31 09:49 apps/
Sie können sehen, dass unser lokales Repository jetzt den Ordner apps/
hat. Beim Durchsehen unseres Verzeichnisses finden wir:
Hier hast du es. Wir haben erfolgreich einen einzelnen Ordner aus dem Remote-Repository gezogen.
Wir können jetzt den Code ändern, festschreiben und zurück in das Remote-Repository pushen.
Bevor wir uns abmelden, gibt es eine andere Methode, die wir anwenden können, die wir in Kürze besprechen werden. Die Methode, die wir gleich besprechen werden, erlaubt es uns jedoch nicht, den Code zu ändern und auf die Fernbedienung zurückzuschieben.
Nachdem Sie das Remote-Repo zu Ihrem lokalen Repository hinzugefügt haben, führen Sie den Befehl git fetch
aus und checken Sie den gewünschten Ordner aus, wie unten gezeigt.
$ git checkout HEAD path/to/your/dir/or/file
Wir haben die obige Methode von Stack Overflow erhalten, und sie zeigt nur, dass sie einen bestimmten Ordner aus einem Remote-Repository ziehen kann. Verwenden Sie die Funktion sparse checkout
, wenn Sie Änderungen vornehmen, festschreiben und auf die Fernbedienung zurückschieben möchten.
John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.
LinkedIn