22

我需要编写一个脚本,以增量方式跟踪从 git 存储库中添加和删除的文件和目录。

我曾尝试使用:

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

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

有任何想法吗?

4

2 回答 2

37

您正在寻找的选项是--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:

git whatchanged -n 1

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

于 2010-04-01T01:38:48.167 回答
7

git whatchanged

于 2010-04-01T01:17:35.673 回答