He eliminado un archivo con Git y luego me he comprometido, 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?Visualización de un archivo eliminado en Git
Respuesta
git show HEAD^:path/to/file
Puede utilizar un identificador de confirmación explícita o HEAD~n
para ver las versiones anteriores o si ha habido más de una confirmación desde lo eliminó.
Dado que es posible que no recordar el camino exacto, en su lugar puede obtener el sha1 de git log, entonces solo puede emitir
git cat-file -p <sha1>
@artlessnoise ¡Agradable! – pdeschen
En nombre de [Samuel Slund] (http://stackoverflow.com/review/suggested-edits/2993006): Una forma de encontrar la suma de sha1 que se usará arriba es: 'git whatchanged --no-abbrev' que da salida similar al registro de git (o svn). –
Si este es un archivo que ha eliminado un tiempo atrás y Don' t quiere cazar a una revisión, puede utilizar (el archivo se llama foo
en este ejemplo, se puede utilizar una ruta completa):
git show $(git rev-list --max-count=1 --all -- foo)^:foo
la invocación rev-list
busca todas las revisiones de foo
pero solo enumera uno. Dado que rev-list
enumera en orden cronológico inverso, entonces lo que enumera es la última revisión que cambió foo
, que sería la confirmación que borró foo
. (Esto se basa en la suposición de que git no permite que se modifique un archivo eliminado y, sin embargo, queda eliminado). No puede usar la revisión que rev-list
devuelve como está porque foo
ya no existe allí. Debe solicitar el anterior que contiene la última revisión del archivo, de ahí el ^
en git show
.
Es posible que deba cambiar el último foo a ./foo. Y para ellos que no usan bash, obtengan el id con "git rev-list --max-count = 1 --all - foo" y luego hagan "git show 5824127a8d99576632a04ac2b5c2344bcf751967: ./ foo" con el ID (524 .. es el id) – Dror
Buena respuesta. Tuve que usar ~ en lugar de ^. No estoy seguro por qué. Y para que la gente lo tenga claro, 'foo' debe ser un camino completo desde la raíz de git. – pedorro
Es exactamente lo que estaba buscando, gracias :) – rzymek
- 1. Unstage un archivo eliminado en git
- 2. Git: Buscar código eliminado
- 3. Restaurar archivo eliminado del repositorio
- 4. ¿Cómo restauro un archivo eliminado en CVS?
- 5. Java escribiendo en un archivo eliminado
- 6. Obtener el historial/registro de un archivo (potencialmente eliminado) en Git
- 7. Cómo localizar y recuperar un archivo eliminado
- 8. TFS 2010: ¿cómo recuperar un archivo eliminado?
- 9. Conflicto de combinación de Git: archivo remoto eliminado, archivo local modificado
- 10. Buscar y ver un archivo eliminado del repos
- 11. Obtener la versión específica de un archivo eliminado en TFS
- 12. SVN recuperar el archivo eliminado
- 13. ¿Cómo recuperar el archivo eliminado en TortoiseSVN?
- 14. git conflict - archivo eliminado en HEAD y modificado en la revisión
- 15. Cómo seguir un archivo en git
- 16. placa de revisión, revisión posterior y un archivo eliminado
- 17. php está bloqueando un archivo de sesión eliminado
- 18. git: encuentra contenido eliminado; Solo conozco el contexto circundante
- 19. Git rebase después de la fusión confundido sobre el archivo eliminado
- 20. estado de git para el repositorio clonado muestra el archivo eliminado
- 21. Eliminado un archivo fuera Visual Studio, TFS no lo reconoce
- 22. Cómo recuperar un archivo del estado "Pago pero eliminado"?
- 23. Visualización del número de bloques para un archivo en hadoop
- 24. ¿Por qué no funciona "git log - foo" para el archivo eliminado foo?
- 25. git checkout revisión de un archivo en git gui
- 26. Visualización de la historia de GIT de los archivos movidos
- 27. Git: archivo renombrado manualmente, Git confundido
- 28. Git: excluir un archivo con git clean
- 29. ¿Por qué git pull no trae directorios que he eliminado?
- 30. ¿Entrar en un solo archivo en Git?
Sí, esto era lo que buscaba. Casi lo tuve pero mi sintaxis estaba equivocada. ¡Gracias! –
Tenga en cuenta que 'ruta/a/archivo' es una ruta completa desde la parte superior del proyecto (dir superior del repositorio). –
Tengo 'fatal: nombre de objeto inválido 'HEAD ^'.' (Tengo que mencionar que solo tengo "Confirmación inicial") – vladkras