it-swarm.com.de

Zeigen Sie eine Datei in einem anderen Git-Zweig an, ohne den Zweig zu ändern

Ist es möglich, eine Datei in einem Git-Zweig zu öffnen, ohne diesen Zweig auszuchecken? Wie?

Grundsätzlich möchte ich in der Lage sein, eine Datei in meinem Github-Seiten Zweig zu öffnen, ohne ständig den Zweig zu wechseln. Ich möchte es nicht ändern, sondern nur anzeigen.

555
Schneems

Das sollte funktionieren:

git show branch:file

Dabei kann branch ein beliebiger Verweis sein (branch, tag, HEAD, ...) und file ist der vollständige Pfad der Datei. Zum Exportieren können Sie verwenden

git show branch:file > exported_file

Sie sollten sich auch die Antworten von VonC auf einige verwandte Fragen ansehen:

UPDATE 19.01.2015:

Heutzutage können Sie relative Pfade mit git show a1b35:./file.txt Verwenden.

778
Scolytus
git show somebranch:path/to/your/file

sie können auch mehrere Dateien erstellen und verknüpfen lassen:

git show branchA~10:fileA branchB^^:fileB

Sie müssen den vollständigen Pfad zur Datei angeben.

Wenn Sie die Datei in das lokale Verzeichnis kopieren möchten (nur eine Datei wiederherstellen), können Sie Folgendes auschecken:

git checkout somebranch^^^ -- path/to/file
46
Adam Dymitruk

Ein einfacher, neuerfreundlicher Weg, um in eine Datei zu schauen: git gui browser <branch>, mit dem Sie den Inhalt einer beliebigen Datei durchsuchen können.

Es ist auch dort im Menü Datei von git gui. Die meisten anderen GUI-Wrapper (Qgit, Egit usw.) bieten ebenfalls das Durchsuchen/Öffnen von Dateien an.

35
inger

Wenn Sie Emacs verwenden, können Sie C-x v ~, um eine andere Revision der Datei anzuzeigen, die Sie gerade bearbeiten (Tags, Zweige und Hashes funktionieren alle).

19
legoscia

Fügen Sie Ihrer ~/.gitconfig - Datei Folgendes hinzu

[alias]
  cat = "!git show \"$1:$2\" #"

Und dann versuch das mal

git cat BRANCHNAME FILEPATH

Persönlich bevorzuge ich separate Parameter ohne Doppelpunkt. Warum? Diese Auswahl spiegelt die Parameter des Befehls checkout wider, die ich eher häufig verwende, und ich finde es daher viel einfacher, mich daran zu erinnern, als an den bizarren, durch Doppelpunkte getrennten Parameter des Befehls show.

1
akuhn