Respostas:
git log --diff-filter=D --summary
Consulte Localizar e restaurar um arquivo excluído em um repositório Git
Se você não quiser todas as informações sobre em que consolidação elas foram removidas, basta adicionar uma grep delete.
git log --diff-filter=D --summary | grep delete
git log --find-renames --diff-filter=D --summary | grep delete
git log --no-renames --diff-filter=D --summary | grep delete
grep deleteporque se a mensagem de confirmação tiver a palavra excluir, ela também será exibida. Use em grep 'delete mode'vez disso.
Isso faz o que você quer, eu acho:
git log --all --pretty=format: --name-only --diff-filter=D | sort -u
... que acabei de extrair mais ou menos diretamente dessa outra resposta .
Se você estiver interessado apenas em ver os arquivos excluídos no momento, poderá usar este:
git ls-files --deleted
se você quiser removê-los (no caso de excluí-los sem usar "git rm") pipe que resulta em xargs git rm
git ls-files --deleted | xargs git rm
git rm $(git ls-files --deleted)
E se você deseja restringir os resultados de alguma forma, aqui está um bom:
$ 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
Você terá todos os arquivos excluídos some_dir(consulte o comando sed) junto com o número de confirmação no qual isso acontece. Qualquer sed regex serve (eu uso isso para encontrar tipos de arquivos excluídos, etc.)
git log --diff-filter=D .
Como o Windows não possui um grepcomando, isso funcionou para mim no PowerShell:
git log --find-renames --diff-filter=D --summary | Select-String -Pattern "delete mode" | sort -u > deletions.txt
Select-String?
Mostrar todos os arquivos excluídos em some_branch
git diff origin/master...origin/some_branch --name-status | grep ^D
ou
git diff origin/master...origin/some_branch --name-status --diff-filter=D
git diff origin/master...origin/some_branch --name-status | grep ^Dougit diff origin/master...origin/some_branch --name-status --diff-filter=D
Isso fornecerá uma lista de todos os arquivos que foram excluídos em todas as ramificações, classificados por seu caminho:
git log --diff-filter=D --summary | grep "delete mode 100" | cut -c 21- | sort > deleted.txt
Funciona no msysgit (2.6.1.windows.1). Observe que precisamos do "modo de exclusão 100", pois os arquivos git podem ter sido confirmados como modo 100644 ou 100755.
git diff --name-status commit_hash.