Come faccio a identificare i file / directory che sono stati aggiunti o rimossi in un git commit?
Domanda
Ho bisogno di scrivere uno script che tiene traccia in modo incrementale di file e directory aggiunti e rimossi da un repo git.
Ho cercato di utilizzare:
git log -n1 --pretty="format:" --name-only
Ma che mi quali file sono stati commessi dice solo. Non specifica se è stato aggiunto o rimosso.
Tutte le idee?
Soluzione
L'opzione che stai cercando è --name-status
. Come --name-only
in realtà è un opzione git-diff; git-log accetta quelli per determinare come va a visualizzare le patch.
git log -n 1 --pretty=oneline --name-status
o equivalentemente (meno l'intestazione di registro):
git diff --name-status HEAD^ HEAD
Come isbadawi sottolinea, è anche possibile utilizzare git-WhatChanged. Questo è più o meno git-log con una specifica uscita diff:
git whatchanged -n 1
Ti potrebbe piacere la versione --name-status
meglio, però, dal momento che non mostra tutti gli hash blob, solo gli stati leggibile.
Altri suggerimenti