Sé que Git almacena información sobre cuándo se eliminan los archivos y puedo verificar las confirmaciones individuales para ver qué archivos se han eliminado, pero ¿hay algún comando que genere una lista de cada archivo eliminado a lo largo de la vida útil de un repositorio?
306
git diff --name-status commit_hash
.Respuestas:
Consulte Buscar y restaurar un archivo eliminado en un repositorio de Git
Si no desea toda la información sobre en qué confirmación se eliminaron, simplemente puede agregar una
grep delete
allí.fuente
git log --find-renames --diff-filter=D --summary | grep delete
git log --no-renames --diff-filter=D --summary | grep delete
grep delete
porque si el mensaje de confirmación tiene la palabra eliminar, también será recogido. Usar en sugrep 'delete mode'
lugar.Esto hace lo que quieres, creo:
... que acabo de tomar más o menos directamente de esta otra respuesta .
fuente
Si solo está interesado en ver los archivos eliminados actualmente, puede usar esto:
si luego desea eliminarlos (en caso de que los haya eliminado sin usar "git rm"), conduzca a xargs git rm
fuente
git rm $(git ls-files --deleted)
Citando esta respuesta de desbordamiento de pila.
Es una forma bastante ordenada de obtener el tipo de cambio (A: agregado, M: modificado, D: eliminado) para cada archivo que se modificó.
fuente
Y si quieres restringir de alguna manera los resultados, aquí hay uno bueno:
Obtendrá todos los archivos eliminados
some_dir
(consulte el comando sed) junto con el número de confirmación en el que sucede. Cualquier sed regex servirá (lo uso para encontrar tipos de archivos eliminados, etc.)fuente
git log --diff-filter=D .
Como Windows no tiene un
grep
comando, esto funcionó para mí en PowerShell:fuente
Select-String
?Mostrar todos los archivos eliminados en some_branch
o
fuente
git diff origin/master...origin/some_branch --name-status | grep ^D
ogit diff origin/master...origin/some_branch --name-status --diff-filter=D
Esto le dará una lista de todos los archivos que se eliminaron en todas las ramas, ordenados por su ruta:
Funciona en msysgit (2.6.1.windows.1). Tenga en cuenta que necesitamos "modo de eliminación 100" ya que los archivos git pueden haberse confirmado como modo 100644 o 100755.
fuente