Как я могу определить файлы/каталоги, которые были добавлены или удалены в объявлении git?

Мне нужно написать script, который постепенно отслеживает файлы и каталоги, добавленные и удаленные из репозитория git.

Я попытался использовать:    git log -n1 --pretty = "format:" --name-only

Но это только говорит мне, какие файлы были совершены. Он не указывает, было ли оно добавлено или удалено.

Любые идеи?

Ответ 1

Вы можете выбрать --name-status. Как --name-only это фактически опция git -diff; git -log принимает их, чтобы определить, как он будет отображать патчи.

git log -n 1 --pretty=oneline --name-status

Или эквивалентно (минус заголовок журнала):

git diff --name-status HEAD^ HEAD

Как указывает isbadawi, вы также можете использовать git -whatchanged. Это в значительной степени git -log с конкретным выходом diff:

git whatchanged -n 1

Вам может показаться, что версия --name-status лучше, тем не менее, поскольку она не отображает все хэши blob, а только данные, доступные для человека.