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 deleteallí.fuente
git log --find-renames --diff-filter=D --summary | grep deletegit log --no-renames --diff-filter=D --summary | grep deletegrep deleteporque 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
grepcomando, 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 ^Dogit diff origin/master...origin/some_branch --name-status --diff-filter=DEsto 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