Eliminé un archivo con Git y luego me comprometí, por lo que el archivo ya no está en mi copia de trabajo. Quiero ver el contenido de ese archivo, pero no restaurarlo realmente. ¿Cómo puedo hacer esto?
104
git show HEAD^:path/to/file
Puede usar un identificador de confirmación explícito o HEAD~n
para ver versiones anteriores o si ha habido más de una confirmación desde que lo eliminó.
path/to/file
es la ruta completa desde la parte superior del proyecto (directorio superior del repositorio).fatal: Invalid object name 'HEAD^'.
(tengo que mencionar que solo tengo "Si se trata de un archivo que eliminó hace un tiempo y no desea buscar una revisión , puede usar (el archivo se nombra
foo
en este ejemplo; puede usar una ruta completa):La
rev-list
invocación busca todas las revisiones defoo
pero solo enumera una. Dado querev-list
enumera en orden cronológico inverso, lo que enumera es la última revisión que cambiófoo
, que sería la confirmación que se eliminófoo
. (Esto se basa en la suposición de que git no permite que un archivo eliminado se cambie y, sin embargo, permanezca eliminado). No puede simplemente usar la revisión querev-list
devuelve tal como está porquefoo
ya no existe allí. Tienes que preguntar por el que está justo antes que contiene la última revisión del archivo, de ahí el^
ingit show
.fuente
**/foo
si no conoce la ruta (esto funcionará para el comando rev-list pero no para el comando show. Sin embargo, con la confirmación del comando rev-list puede encontrar la ruta).Dado que es posible que no recuerde la ruta exacta, puede obtener el sha1 de git log y luego simplemente emitir
fuente
git whatchanged --no-abbrev
que da una salida similar a git (o svn) log.