Estoy trabajando en un proyecto en git, y sé que en algún momento del pasado (mucho antes de que tuviera el código) existía un archivo llamado exec.js
. Quiero ver el contenido de este archivo. Sé qué repositorio solía contener este archivo, pero no sé la ruta exacta.Buscar y ver un archivo eliminado del repos
Respuesta
Se puede utilizar caracteres comodín en git log
:
git log -- *exec.js
le dará todos los mensajes de registro cuando un archivo llamado exec.js
se modificó.
Una vez que encuentre el borrado commit (por ejemplo A
), usted podría
git checkout A -- *exec.js
Esto le llevará la última versión de exec.js
.
Si desea ver el historial completo de exec.js
, podría utilizar gitk
:
gitk -- *exec.js
Esto le mostrará todas las modificaciones de nuevo. Si está particularmente interesado en una confirmación, puede hacer clic con el botón derecho en el archivo en el cuadro de diálogo gitk
y luego seleccionar herramienta externa diff. Esto abrirá la herramienta de diferencia externa con los archivos completos , no solo los parches.
Puede buscar ese archivo en particular dentro de la historia de registro mediante -
Si usted no tiene ruta de archivo a continuación
git log --diff-filter=D --summary | grep filename
Si ha ruta de archivo, puede utilizar -
git log -- filepath
git log -n 1 -- filepath
y una vez que obtenga la revisión, puede verificar esa revisión en particular para obtener ese archivo
Usted no leyó la pregunta, ¿verdad? Dijeron que ** no conocen ** el camino. Este es el filtro de ruta. Requiere el camino. Por lo tanto, es inútil. –
No conozco la ruta y no tenía el código cuando se eliminó el archivo. – user429400
@JanHudec sí me ... pero, por supuesto, debe estar teniendo la ruta de repositorio git.usuario429400 ¿no es así? –
No es fácil enumerar el nombre completo de un archivo eliminado y su contenido en uno o dos comandos. Sin embargo, aquí es un alias para empezar:
$ git config --global alias.find-deleted-file '!f() { for c in `git rev-list HEAD`; do for fnm in `git diff-tree -r --diff-filter=D --name-only $c | grep -P ".*/$1"` ; do echo "$c $fnm" ; git show $c^:$fnm ; echo "" ; done ; done ; } ; f'
Esto pondrá a disposición una Git find-deleted-file
alias que buscará un archivo borrado (usando diff-tree
) con el patrón de nombre proporcionado archivo (coincidencia de patrones proporcionada por grep -P
), mostrando la confirmación del archivo se eliminó, el nombre completo del archivo y su contenido antes de que se eliminara.
Utilizando el ejemplo siguiente historia repositorio:
$ git log --all --graph --decorate --oneline --name-only
* 3f3cba1 (HEAD, master) I
I
* 4c8b369 H
E/H
* a008343 rm F
E/F
* 525a127 FG
E/F
E/G
* 3a10f93 initial
A
B
C
D
E/F
debe buscarse por el F
archivo borrado usando:
$ git find-deleted-file F
a008343eec91fe917078209d44ae93ee72fc5acb E/F
F
- 1. Git: Buscar código eliminado
- 2. Restaurar archivo eliminado del repositorio
- 3. Cómo localizar y recuperar un archivo eliminado
- 4. Visualización de un archivo eliminado en Git
- 5. Cómo recuperar un archivo del estado "Pago pero eliminado"?
- 6. placa de revisión, revisión posterior y un archivo eliminado
- 7. ¿Quiero buscar y ver conversaciones de sms?
- 8. Java escribiendo en un archivo eliminado
- 9. Unstage un archivo eliminado en git
- 10. ¿Cómo restauro un archivo eliminado en CVS?
- 11. TFS 2010: ¿cómo recuperar un archivo eliminado?
- 12. Buscar y reemplazar en un archivo grande
- 13. buscar y reemplazar cadena en un archivo
- 14. SVN recuperar el archivo eliminado
- 15. Obtener la versión específica de un archivo eliminado en TFS
- 16. ¿Puedo usar git repos dentro de svn repos
- 17. Buscar un archivo en python
- 18. Para ver el contenido del archivo .jar
- 19. PyQt: Obteniendo el nombre del archivo para el archivo eliminado en la aplicación
- 20. Buscar todas las referencias para ver
- 21. Buscar y reemplazar palabras/líneas en un archivo
- 22. php está bloqueando un archivo de sesión eliminado
- 23. Eliminado un archivo fuera Visual Studio, TFS no lo reconoce
- 24. restaurar el eje y eliminado
- 25. ¿Cómo recuperar el archivo eliminado en TortoiseSVN?
- 26. Subversion large repos import/checkout
- 27. Conexión del propietario del archivo para ver el problema
- 28. Archivo de git de archivos modificados en repos sin conexión
- 29. ¿Cómo puedo ver un archivo comprimido contenido
- 30. PHP: Cómo buscar un archivo usando comodines
También puede hacer un ** git diff * revisión-antes-borrar * - * filepath *** para ver el contenido completo del archivo. (Tendrá "-" al frente de cada línea, ya que cada línea fue eliminada del archivo). –