我需要编写一个脚本,逐步跟踪添加和删除的文件和目录从Git存储库中。
我尝试使用了:
git log -n1 --pretty="format:" --name-only
但这只告诉我哪些文件已经提交了,没有说明是添加还是删除。
有什么想法吗?
你要寻找的选项是--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哈希值,只会显示可读的状态。
git log
替代。它现在仍然有用,但对于未来的读者可能不再适用。 - John Pavekgit log
不包括添加的文件,至少在其普通形式下不包括。 - elPastor
git log --name-status --diff-filter=A --follow .gitignore
- Eido95