我如何识别在git提交中添加或删除的文件/目录?

时间:2010-04-01 01:10:12

标签: git git-log

我需要编写一个脚本,逐步跟踪从git仓库中添加和删除的文件和目录。

我试过用:

git log -n1 --pretty="format:" --name-only

但这只会告诉我哪些文件已提交。它没有指定是添加还是删除。

有什么想法吗?

2 个答案:

答案 0 :(得分:29)

您正在寻找的选项是--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。这几乎是带有特定diff输出的git-log:

git whatchanged -n 1

您可能更喜欢--name-status版本,因为它不会显示所有blob哈希值,只显示人类可读的状态。

答案 1 :(得分:5)