协慌网

登录 贡献 社区

如何仅列出两次提交之间更改的文件名?

我在回购中有一堆提交。我想看到两个提交之间更改的文件列表 - 从 SHA1 到 SHA2。

我应该使用什么命令?

答案

git diff --name-only SHA1 SHA2

您只需要包含足够的 SHA 来识别提交。例如,您也可以这样做

git diff --name-only HEAD~10 HEAD~5

查看第十个最新提交和第五个最新提交(或左右)之间的差异。

git diff --name-status [SHA1 [SHA2]]

就像 --name-only,除了你得到一个简单的前缀,告诉你文件发生了什么(修改,删除,添加......)

git log --name-status --oneline [SHA1..SHA2]

类似,但提交消息后列出了提交,因此您可以看到文件何时更改。

  • 如果您对某些文件 / 文件夹发生了什么感兴趣,可以将-- <filename> [<filename>...]附加到git log版本。

  • 如果你想看看单个提交发生了什么,称之为 SHA1,然后做
    git log --name-status --oneline [SHA1^..SHA1]

文件状态标志:
M 修改 - 文件已被修改
C copy-edit - 已复制和修改文件
R rename-edit - 文件已重命名和修改
添加了 - 文件已添加
D 已删除 - 文件已被删除
U unmerged - 合并后文件存在冲突

但是为了看到你的分支和它的共同祖先与另一个分支(比如 origin / master)之间的文件发生了变化:

git diff --name-only `git merge-base origin/master HEAD`