Ziehen Sie einen bestimmten Ordner in Git

John Wachira 15 Februar 2024
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.

Remote-Repository

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:

Apps-Ordner im Verzeichnis

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 Wachira avatar John Wachira avatar

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

Verwandter Artikel - Git Pull