Eine andere Lösung, die derjenigen ähnlich ist, die --filter=blob:none
ist zu verwenden --filter=tree:0
(Sie können eine Erklärung der Unterschiede lesen ici ).
Diese Methode ist in der Regel schneller als die blob
-eins, weil es die Baumstruktur nicht herunterlädt, hat aber einen Nachteil. Da Sie das Abrufen des Baums verzögern, haben Sie einen Nachteil, wenn Sie in das Repository-Verzeichnis eintreten (je nach Größe und Struktur Ihres Repositorys kann es im Vergleich zu einem einfachen shallow-clone um ein Vielfaches größer sein).
Wenn das bei Ihnen der Fall ist, können Sie das Problem beheben, indem Sie sich nicht in das Repo eintragen:
git clone -n --filter=tree:0 <repo_url> tgt_dir
git -C tgt_dir checkout <branch> -- <filename>
cat tgt_dir/<filename> # or move it to another place and delete tgt_dir ;)
Wenn Sie mehrere Dateien auschecken müssen, wirkt sich die Baumpopulation auch auf die Leistung aus, daher empfehle ich dies nur für eine einzige Datei und nur, wenn das Projektarchiv groß genug ist, um all diese Aktionen zu rechtfertigen.
11 Stimmen
Was meinen Sie mit Auschecken? Eine Kopie von nur einer Datei aus einem entfernten Repository beziehen?
2 Stimmen
Wenn das betreffende Projektarchiv gitweb verwendet, können Sie die Datei einfach direkt von dort herunterladen. Wie ich weiter unten zu erklären versuche, ist das, was Sie fragen, nicht wirklich ein Standard-Git-Vorgang.
2 Stimmen
Mögliche Duplikate von Wie kann ich eine Datei auf den letzten Commit in Git zurücksetzen?
0 Stimmen
Sie können die Chrome-Erweiterung verwenden GitHub Mate können Sie auf das Dateisymbol klicken, um die Datei herunterzuladen.
0 Stimmen
Mögliches Duplikat von Abrufen einer einzelnen Datei aus einem Repository
0 Stimmen
Siehe stattdessen: stackoverflow.com/a/600189/42223
0 Stimmen
Ich habe eine
bash
Funktion, die das Herunterladen der Historie vermeidet, die einen einzelnen Zweig abruft und die eine Liste von Dateien oder Verzeichnissen abruft, die Sie benötigen. Sehen Sie es hier: stackoverflow.com/questions/60190759/0 Stimmen
Damit zusammenhängend: Menschen, die über eine Google-Suche hier landen, suchen möglicherweise stattdessen nach dieser Frage, obwohl es sich um eine völlig andere Frage handelt: Wie man eine Datei aus einem anderen Zweig erhält .
0 Stimmen
Kein Git-Befehl, sondern Checkout/Download einer Datei. Versuchen Sie
svn export --force https://github.com/{USER}/{REPO}/trunk/{PATH}/{TO}/{FILE} {PATH}/{TO}/{CHECKOUT
} [--force
zum Überschreiben der Ziel-/Downloaddatei]