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

标签 git git-log

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

我尝试过使用:

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

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

有什么想法吗?

最佳答案

您正在寻找的选项是--name-status。像 --name-only 它实际上是一个 git-diff 选项; git-log 接受这些来确定它将如何显示补丁。

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

或等效地(减去日志 header ):

git diff --name-status HEAD^ HEAD

正如 isbadawi 指出的那样,您还可以使用 git-whatchanged。这几乎是带有特定差异输出的 git-log:

git whatchanged -n 1

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

关于git - 我如何识别在 git 提交中添加或删除的文件/目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2557564/

相关文章:

Git 错误 : RPC failed; result=52, HTTP 代码 = 0

macos - 从存储库中删除奇怪的 'Iconr' 文件

git - 试图找到一个完整的 git 变量列表

git - `git log -p path/to/file` 未显示所有更改

git - 如何列出自 X 日期以来匹配模式的标签?

git - 如何在 vim 中并排查看多个 git diff

git - 将新分支推送到 google.com git 存储库

git - Git列出自特定提交以来已修改(未添加)的所有文件,包括已添加并随后修改的文件

git - 我可以影响 gitk 和 Eclipse Egit 中显示的分支顺序/列吗

Git 日志图在一个地方显示每个分支的提交