Tengo el archivo " main.cpp
" abierto en mi editor.
También quiero ver la revisión anterior de " main.cpp
" en el editor.
La forma en que lo hago ahora es así.
close "main.cpp" in the editor
prompt> mv main.cpp tmp
prompt> git checkout HEAD^ main.cpp
prompt> mv main.cpp old_main.cpp
prompt> mv tmp main.cpp
prompt>
open "main.cpp" and "old_main.cpp" in the editor
¿Se puede simplificar para que no tenga que cerrar "main.cpp" en el editor?
Lo que espero es una variante git-checkout
que pueda hacer esto.
ACTUALIZACIÓN: estoy usando git en mac osx 10.5.7
prompt> git --version
git version 1.6.0.4
prompt>
ACTUALIZACIÓN2: La respuesta de Jakub Narębski es:
prompt> git show HEAD^:dir1/dir2/dir3/main.cpp > old_main.cpp
prompt>
ACTUALIZACIÓN3: la respuesta de Karmi, para una revisión específica:
prompt> git show 4c274dd91dc:higgs/Higgs.xcodeproj/project.pbxproj > old_project.pbxproj
prompt>
Respuestas:
Puedes usar "git show" para eso:
(Tenga en cuenta que hay dos puntos [
:
] entreHEAD^
ymain.cpp
.) La<revision>:<path>
sintaxis se describe en la página de manual de git rev-parse , junto al último punto en la sección "Especificación de revisiones":Tenga en cuenta que
<path>
aquí hay una ruta COMPLETA en relación con el directorio superior de su proyecto, es decir, el directorio con el.git/
directorio. (O para ser más exactos a " <revision> " (que en general puede ser cualquier <tree-ish> , es decir, algo que representa un árbol))Si desea usar la ruta relativa al directorio actual, debe usar la
./<path>
sintaxis (o../path
subir desde el directorio actual).Editar 2015-01-15: se agregó información sobre la sintaxis de ruta relativa
En la mayoría de los casos, puede obtener la misma salida con el
git cat-file
comando de bajo nivel (plomería) :fuente
Solo para agregar a la respuesta de Jakub: ni siquiera tiene que redirigir la salida a un archivo
>
, si solo está interesado en rozar el contenido del archivo en el terminal. Solo puedes correr$ git show 58a3db6:path/to/your/file.txt
.fuente