Wenn ich mir ein paar Tutorials ausleihe, kann ich einen bestimmten Ordner in einem Git Repo spärlich auschecken.
%Vor% Nehmen wir zum Beispiel an, dass ich nach den Skripten git-completion.bash
, git-completion.tcsh
usw. im Ordner contrib/completion
dieses Repos bin.
Das obige Sparse-Checkout gibt mir den gewünschten Ordner zurück, aber es scheint eine verschachtelte Dateistruktur zu haben:
%Vor%Ist es möglich, die Dateien stattdessen in das übergeordnete Verzeichnis zu ziehen?
%Vor% Sie können dies mit git show
:
In Ihrem speziellen Fall:
%Vor% Wiederholen Sie dies für jede Datei, die Sie auschecken möchten. Der Grund für die Unterverzeichnisse liegt meiner Meinung nach darin, dass wenn sie in einem git
release gebündelt werden, sie in das Unterverzeichnis contrib/completion
gestellt werden, so dass es vielleicht besser ist, sich an das Repository-Layout zu gewöhnen ...
Je nachdem, was Sie erreichen möchten, haben Sie zwei Möglichkeiten. Wenn Sie Änderungen an den Dateien noch verfolgen möchten, würde ich Symlinks setzen. Wenn Sie sich nicht um lokale Änderungen kümmern, würde ich git archive
verwenden.
Sie können Symlinks für die Dateien festlegen, die Ihnen wichtig sind. Verwenden Sie einen Ersatz-Checkout, um diese zu erhalten.
%Vor%Damit können Sie die Dateien bearbeiten und Änderungen an ihnen festschreiben.
Dies wird einfach den Inhalt extrahieren, den Sie suchen. Änderungen werden nicht im Repository verfolgt.
%Vor% Bearbeiten: Es sieht so aus, als ob github
git archive --remote
nicht unterstützt. Es ist immer noch unten enthalten, falls jemand einen anderen Hosting-Dienst verwendet, der es erlaubt.
Mit git archive können Sie die Änderungen sogar direkt von einem Remote-Repository herunterladen, ohne vorher das Repository zu klonen. Der Nachteil ist, dass Sie lokale Änderungen mit Git nicht verfolgen können.
%Vor%Sie haben jetzt die Dateien im aktuellen Verzeichnis.
Tags und Links git sparse-checkout