Como identifico arquivos/diretórios que foram adicionados ou removidos em um commit git?
Pergunta
Preciso escrever um script que acompanhe de forma incremental arquivos e diretórios adicionados e removidos de um repositório Git.
Eu tentei usar:
git log -n1 --pretty="format:" --name-only
Mas isso só me diz quais arquivos foram cometidos. Ele não especifica se foi adicionado ou removido.
Alguma ideia?
Solução
A opção que você está procurando é --name-status
. Curti --name-only
Na verdade, é uma opção Git-Diff; O Git-Log aceita aqueles para determinar como ele exibirá patches.
git log -n 1 --pretty=oneline --name-status
Ou equivalente (menos o cabeçalho do log):
git diff --name-status HEAD^ HEAD
Como Isbadawi aponta, você também pode usar o Git-Whatchanged. Isso é praticamente um log de git com uma saída diferenciada específica:
git whatchanged -n 1
Você pode gostar do --name-status
Versão melhor, porém, já que não mostra todos os hashes do blob, apenas os status legíveis por humanos.
Outras dicas