tipos tag repositorios qué los existen etiquetas cómo crear califican git

tag - ¿Cómo puedo listar todos los archivos eliminados en un repositorio de git?



git push tag (7)

Citando this respuesta de stackoverflow. Una forma bastante clara de obtener el tipo de cambio (A: Agregado, M: Modificado, D: Eliminado) para cada archivo que se modificó.

git diff --name-status

Sé que git almacena información sobre cuándo se eliminan los archivos y puedo verificar las confirmaciones individuales para ver qué archivos se eliminaron, pero ¿hay un comando que genere una lista de todos los archivos eliminados durante la vida útil de un repositorio?


Como Windows no tiene un comando grep , esto funcionó para mí en PowerShell:

git log --find-renames --diff-filter=D --summary | Select-String -Pattern "delete mode" | sort -u > deletions.txt


Esto hace lo que quieres, creo:

git log --all --pretty=format: --name-only --diff-filter=D | sort -u

... que acabo de tomar más o menos directamente de esta otra respuesta .


Esto le dará una lista de todos los archivos que fueron eliminados en todas las ramas, ordenados por su ruta:

git log --diff-filter=D --summary | grep "delete mode 100" | cut -c 21- | sort > deleted.txt

Funciona en msysgit (2.6.1.windows.1). Tenga en cuenta que necesitamos el "modo de eliminación 100" ya que los archivos git pueden haberse comprometido como el modo 100644 o 100755.


Si solo está interesado en ver los archivos eliminados actualmente, puede usar esto:

git ls-files --deleted

Si luego desea eliminarlos (en caso de que los elimine sin usar "git rm"), utilice el conducto para que xargs git rm

git ls-files --deleted | xargs git rm


Y si quieres restringir de alguna manera los resultados, aquí hay uno bueno:

$ git log --diff-filter=D --summary | sed -n ''/^commit/h;///some_dir///{G;s//ncommit /(.*/)/ /1/gp}'' delete mode 100644 blah/some_dir/file1 d3bfbbeba5b5c1da73c432cb3fb61990bdcf6f64 delete mode 100644 blah/some_dir/file2 d3bfbbeba5b5c1da73c432cb3fb61990bdcf6f64 delete mode 100644 blah/some_dir/file3 9c89b91d8df7c95c6043184154c476623414fcb7

Obtendrá todos los archivos eliminados de some_dir (consulte el comando sed) junto con el número de confirmación en el que suceda. Cualquier sed regex hará (uso esto para encontrar tipos de archivos eliminados, etc.)