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~npara ver versiones anteriores o si ha habido más de una confirmación desde que lo eliminó.
path/to/filees 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
fooen este ejemplo; puede usar una ruta completa):La
rev-listinvocación busca todas las revisiones defoopero solo enumera una. Dado querev-listenumera 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-listdevuelve tal como está porquefooya 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
**/foosi 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-abbrevque da una salida similar a git (o svn) log.