2012-06-13 20 views
22

¿Hay algún comando que pueda tomar una referencia y una ruta de archivo, y mostrar el contenido completo del archivo tal como estaba en esa confirmación a STDOUT?Git: todo el archivo a la salida estándar

Por ejemplo. Algo como esto:

git show-me-the-file HEAD~2 some/file | do_something_with_piped_output_here 
+3

git cat-file -p HEAD ~ 2: some/file – jthill

+0

Gracias jthill - eso también funciona. Hazlo una respuesta y yo lo votaré. – Joel

+0

Esto es para lo que lo usé: meld <(git cat-file -p HEAD: some/file) <(git cat-file -p master: some/file); Para ver una diferencia de archivos en fusión. Probablemente haya una mejor manera de hacerlo también, pero parece funcionar bien. – Joel

Respuesta

38

git show

por ejemplo

git show HEAD:./<path_to_file>

+3

el '| cat' no es necesario (a menos que desee evitar que el localizador entre en escena). –

+0

El ":" es importante o verá un archivo diff en lugar del completo. –

7

git show <ref spec>:<path> por ejemplo, si usted quiere ver un archivo en comprometen punto 9be20d1bf62 haces:

git show 9be20d1bf62:a/b/file.txt

si quieren ver archivo en particular, la rama:

git show <branch name>:<path>

2

Desea git show o git archive para este caso de uso. Sin embargo, el comando git-show está más orientado al envío de archivos a la salida estándar.

# Show .gitignore from revision before this one. 
git show HEAD^:.gitignore 

La parte antes de que el colon es un árbol-ish formado de acuerdo con gitrevisions (7), mientras que el segundo medio es una ruta relativa a la parte superior de su árbol de trabajo git.

Cuestiones relacionadas