Wie kann ich nur eine Datei aus einem Git-Repository auschecken?
git
!= github
Wie kann ich nur eine Datei aus einem Git-Repository auschecken?
Wenn Sie eine Datei haben, die lokal geändert wurde (die, die mit git pull
) einfach tun:
git checkout origin/master filename
git checkout
- Zweige wechseln oder Arbeitsbaumdateien wiederherstellen (hier wird nichts gewechselt, sondern nur die Datei überschrieben)origin/master
- Ihren aktuellen Zweig oder Sie können bestimmte revision-number
zum Beispiel: cd0fa799c582e94e59e5b21e872f5ffe2ad0154b
,.git
Leben) wenn Sie also eine Struktur haben:`.git
öffentlich/index.html
public/css/style.css
Anbieter
composer.lock
und index.html neu laden wollen - verwenden Sie einfach public/index.html
Ich sehe hier nicht, was bei mir funktioniert hat, also werde ich es einfügen, falls jemand in meiner Situation ist.
Meine Situation: Ich habe ein entferntes Repository mit vielleicht 10.000 Dateien und muss eine RPM-Datei für mein Linux-System erstellen. Der Build des RPM beinhaltet einen Git-Clone von allem. Alles, was ich brauche, ist eine Datei, um den RPM-Build zu starten. Ich kann den gesamten Quellcodebaum klonen, was auch funktioniert, aber es dauert zwei Minuten länger, all diese Dateien herunterzuladen, wenn ich nur eine brauche. Ich habe versucht, die besprochene Git-Archivoption zu verwenden, und erhielt die Meldung "fatal: Operation not supported by protocol". Es scheint, dass ich irgendeine Art von Archivierungsoption auf dem Server aktivieren muss, und mein Server wird von bürokratischen Schergen gewartet, die es anscheinend genießen, es zu erschweren, Dinge zu erledigen.
Was ich schließlich tat, war ich ging in die Web-Schnittstelle für Bitbucket und sah die eine Datei, die ich brauchte. Ich klickte mit der rechten Maustaste auf den Link, um eine Rohkopie der Datei herunterzuladen, und wählte im daraufhin angezeigten Popup "Verknüpfung kopieren". Ich konnte nicht einfach die Rohdatei herunterladen, weil ich Dinge automatisieren musste und ich keine Browserschnittstelle auf meinem Linux-Server habe.
Um der Diskussion willen, ergab das die URL:
https://ourArchive.ourCompany.com/projects/ThisProject/repos/data/raw/foo/bar.spec?at=refs%2Fheads%2FTheBranchOfInterest
Ich konnte diese Datei nicht direkt aus dem Bitbucket-Repository herunterladen, da ich mich zuerst anmelden musste. Nach einigem Suchen habe ich herausgefunden, dass dies funktioniert: Unter Linux:
echo "myUser:myPass123"| base64
bXlVc2VyOm15UGFzczEyMwo=
curl -H 'Authorization: Basic bXlVc2VyOm15UGFzczEyMwo=' 'https://ourArchive.ourCompany.com/projects/ThisProject/repos/data/raw/foo/bar.spec?at=refs%2Fheads%2FTheBranchOfInterest' > bar.spec
Diese Kombination ermöglichte es mir, die eine Datei herunterzuladen, die ich brauchte, um alles andere zu erstellen.
Es klingt, als ob Sie versuchen, eine Idee aus der zentralisierten Versionskontrolle zu übernehmen, was Git von Natur aus nicht ist - es ist verteilt. Wenn du mit einem Git-Repository arbeiten willst, klonst du es. Sie haben dann todos des Inhalts des Arbeitsbaums, und todos der gesamten Historie (zumindest alles, was bis zur Spitze des aktuellen Zweigs führt), nicht nur eine einzelne Datei oder einen Schnappschuss von einer einzelnen Übertragung.
git clone /path/to/repo
git clone git://url/of/repo
git clone http://url/of/repo
Wenn Sie eine lokale Version einer Datei bearbeitet haben und zu der ursprünglichen Version auf dem zentralen Server zurückkehren möchten, können Sie dies einfach mit Git-Erweiterungen .
Vorsicht!
Wenn Sie nur die Datei herunterladen möchten, müssen Sie nicht mit Git auschecken.
GitHub Mate ist viel einfacher, es handelt sich um eine Chrome-Erweiterung, mit der Sie auf das Dateisymbol klicken können, um die Datei herunterzuladen. offene Quelle
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]