606 Stimmen

Wie kann man nur eine einzelne Datei aus einem Git-Repository sparsam auschecken?

Wie kann ich nur eine Datei aus einem Git-Repository auschecken?

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

1voto

zoore Punkte 193

Wenn Sie eine Datei haben, die lokal geändert wurde (die, die mit git pull ) einfach tun:

git checkout origin/master filename
  1. git checkout - Zweige wechseln oder Arbeitsbaumdateien wiederherstellen (hier wird nichts gewechselt, sondern nur die Datei überschrieben)
  2. origin/master - Ihren aktuellen Zweig oder Sie können bestimmte revision-number zum Beispiel: cd0fa799c582e94e59e5b21e872f5ffe2ad0154b ,
  3. Dateiname mit Pfad aus dem Hauptverzeichnis des Projekts (wobei das Verzeichnis .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

0voto

user1683793 Punkte 1155

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.

0voto

Cascabel Punkte 449595

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

-4voto

Robert Taylor Punkte 1

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 .

  • Zunächst wird die Datei zur Übergabe markiert, da sie geändert wurde
  • Wählen Sie die Datei im Dateibaummenü aus (Doppelklick)
  • Der Revisionsbaum für die einzelne Datei wird aufgelistet.
  • Wählen Sie den Kopf des Baums und klicken Sie mit der rechten Maustaste auf "Speichern unter
  • Speichern Sie die Datei, um die geänderte lokale Version der Datei zu überschreiben.
  • Die Datei hat nun die korrekte Version und wird nicht mehr zum Übertragen markiert!

Vorsicht!

-4voto

Cam Song Punkte 2958

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

10 Stimmen

git != github

CodeJaeger.com

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.

Powered by:

X