如果有合并,如何显示自上次提交以来更改的文件列表?

How to show a list of changed files since last commit if there was a merge?

我一直在使用以下命令来查看自上次提交以来更改的文件列表,并且大部分情况下它都有效。

git show --oneline --name-only HEAD | tail -n +2

但是,请考虑这种情况。

存储库被克隆到两个地方。 A 从存储库中删除了一个名为 foo 的文件,并将他的更改推送到存储库。之后那个人 b 从 repo 中删除了一个名为 bar 的文件并尝试推送他的更改。他被告知他必须拉动。他做了一个拉,他必须合并。合并后,他把自己的改动push上去。

上面的git show 命令不会显示有关文件foo 或bar 的任何信息。我可以使用类似的命令,

git show --oneline --stat | head -n -1 | tail -n +3 | awk '{print }'

但这只会列出文件 foo 而不是 bar。

什么git命令可以运行显示文件栏已更改?

git show object 显示提交等对象。在您解释的情况下,添加两个文件和合并发生在三个单独的提交中。一个简单的查看方法是使用 git log 并使用标志 n 来限制先前提交的数量:

git log --oneline --name-only -n 3