tipos tener tag qué proyecto practices podemos para nuestros mayor lista herramienta hacer existen etiquetas control commits commands comandos best git

tag - ¿qué herramienta podemos hacer para tener un mayor control de nuestros proyecto en github?



git-checkout revisión anterior de un archivo con un nuevo nombre (2)

Tengo el archivo " main.cpp " abierto en mi editor.

Quiero ver la revisión anterior de " main.cpp " en el editor también.

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, por lo que no tengo que cerrar "main.cpp" en el editor?

Lo que espero es una variante de 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ÓN 3: La respuesta de Karmi, para una revisión específica:

prompt> git show 4c274dd91dc:higgs/Higgs.xcodeproj/project.pbxproj > old_project.pbxproj prompt>


Puedes usar "git show" para eso:

prompt> git show HEAD^:main.cpp > old_main.cpp

(Tenga en cuenta que hay un carácter de dos puntos [ : ] entre HEAD^ y main.cpp ). La sintaxis <revision>:<path> se describe en la página de manual de git rev-parse , junto al último punto en la sección "Especificación de revisiones":

  • <rev>: <ruta>, por ejemplo, HEAD: README,: README, master: ./ README

    Un sufijo : seguido de una ruta nombra el blob o el árbol en la ruta dada en el objeto tree-ish nombrado por la parte antes de los dos puntos. :path (con una parte vacía antes de los dos puntos) es un caso especial de la sintaxis que se describe a continuación: contenido registrado en el índice en la ruta dada.

    Una ruta que comienza con ./ o ... ./ es relativa al directorio de trabajo actual. La ruta dada se convertirá para que sea relativa al directorio raíz del árbol de trabajo. Esto es muy útil para tratar un blob o árbol desde un commit o árbol que tiene la misma estructura de árbol que el árbol de trabajo.

Tenga en cuenta que <path> aquí es la ruta COMPLETA relativa al directorio superior de su proyecto, es decir, el directorio con el directorio .git/ . (O para ser más exacto con " <revision> " (que en general puede ser cualquier <tree-ish> , es decir, algo que represente un árbol))

Si desea usar la ruta relativa al directorio actual, necesita usar la sintaxis ./<path> (o ../path para subir desde el directorio actual).

Edición 2015-01-15: se agregó información sobre la sintaxis de la ruta relativa

En la mayoría de los casos, puede obtener la misma salida usando el comando git cat-file bajo nivel (plomería):

prompt> git cat-file blob HEAD^:main.cpp > old_main.cpp


Solo para agregar a la respuesta de Jakub: ni siquiera tiene que redirigir la salida a un archivo con > , si solo está interesado en examinar el contenido del archivo en el terminal. Simplemente puede ejecutar $ git show 58a3db6:path/to/your/file.txt .