Wie kann ich nur eine Datei aus einem Git-Repository auschecken?
Cool, wenn da nicht die Tatsache wäre, dass man erst klonen muss.
Wie kann ich nur eine Datei aus einem Git-Repository auschecken?
Ganz einfach:
git checkout from-branch-name -- path/to/the/file/you/want
Dadurch wird der Checkout der from-branch-name
Zweigstelle. Sie bleiben in dem Zweig, in dem Sie sich gerade befinden, und nur diese eine Datei wird aus dem angegebenen Zweig ausgecheckt.
Hier ist der relevante Teil der Manpage für git-checkout
git checkout [-p|--patch] [<tree-ish>] [--] <pathspec>...
When <paths> or --patch are given, git checkout does not switch
branches. It updates the named paths in the working tree from the
index file or from a named <tree-ish> (most often a commit). In
this case, the -b and --track options are meaningless and giving
either of them results in an error. The <tree-ish> argument can be
used to specify a specific tree-ish (i.e. commit, tag or tree) to
update the index for the given paths before updating the working
tree.
Hut ab vor Ariejan de Vroom, der mir das hier beigebracht hat Blog-Beitrag .
Zwei Varianten zu dem, was bereits gesagt wurde:
git archive --format=tar --remote=git://git.foo.com/project.git HEAD:path/to/directory filename | tar -O -xf -
und:
git archive --format=zip --remote=git://git.foo.com/project.git HEAD:path/to/directory filename | funzip
Diese schreiben die Datei auf die Standardausgabe.
In Git werden Dateien nicht "ausgecheckt", bevor man sie aktualisiert - es scheint, als ob Sie genau das wollen.
Bei vielen Systemen wie clearcase, csv usw. müssen Sie eine Datei erst auschecken, bevor Sie Änderungen daran vornehmen können. Bei Git ist dies nicht erforderlich. Sie klonen ein Repository und nehmen dann Änderungen in Ihrer lokalen Kopie des Repositorys vor.
Sobald Sie die Dateien aktualisiert haben, können Sie dies tun:
git status
Um zu sehen, welche Dateien geändert wurden. Sie fügen die Dateien hinzu, die Sie übertragen möchten index
zunächst mit ( index
ist wie eine Liste, die eingecheckt werden muss):
git add .
ou
git add blah.c
Dann tun git status
zeigt Ihnen, welche Dateien geändert wurden und welche sich in index
bereit zum Commit oder Check-in.
Um Dateien an Ihre Kopie des Repositorys zu übergeben, tun Sie dies:
git commit -a -m "commit message here"
Voir git
Website für Links zu Handbüchern und Anleitungen.
Und wenn Ihr Ziel darin besteht, diese einzelne Datei zu patchen und zurückzusenden, müssen Sie entweder pushen (aber wahrscheinlich haben Sie keinen Push-Zugang für dieses Projekt?) oder git format-patch
um einen Patch zur Einreichung zu erstellen ( git format-patch -1
erstellt einen Patch nur für Ihren letzten Commit).
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
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]