如何列出在两次提交之间更改的文件名称。

2655

我在代码库中有一堆提交记录,我想查看两个提交记录间修改的文件列表 —— 从 SHA1SHA2

我应该使用什么命令?

答案:您可以使用以下命令来查看两个提交记录间修改的文件列表:
git diff --name-only SHA1 SHA2

3
针对一个提交及其父提交:https://dev59.com/PHRC5IYBdhLWcg3wD8xV - Ciro Santilli OurBigBook.com
1
你应该修改问题标题...你不想列出已更改的文件名...你想要列出已更改的文件的名称。请注意,更改文件名而不更改其内容是可能的。 - Max Waterman
15个回答

5

对于只需要关注Java文件的用户,这是我的解决方案:

 git diff --name-status SHA1 SHA2 | grep '\.java$'

4

如果有人正在寻找已更改的文件列表,包括暂存的文件

git diff HEAD --name-only --relative --diff-filter=AMCR

git diff HEAD --name-only --relative --diff-filter=AMCR sha-1 sha-2

如果你想使用绝对路径,请删除 --relative 选项。


diff-filter=... 是我正在搜索的内容。 - Lenormju

3

使用

git log --pretty=oneline > C:\filename.log

这将仅记录一行日志(--pretty=oneline),该行包含已更改文件的名称。它还将在您的输出文件中记录所有详细信息。


1
git log --pretty=oneline 在使用 git 2.10.1 版本时只会给我提供 SHA 和提交信息。 - damd
在Windows上?在什么情况下? - Peter Mortensen

2

根据git diff --name-status,我编写了git-diffview Git扩展程序,它可以呈现两个路径之间发生了什么变化的分层树形视图。


1

正如artfulrobot在他的回答中所说:

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

我的例子:

git diff --name-status 78a09k12067c24d8f117886c4723ccf111af4997 
4b95d595812211553070046bf2ebd807c0862cca
M       views/layouts/default.ctp
M       webroot/css/theme.css
A       webroot/img/theme/logo.png

这并没有为之前的答案增添任何内容。 - MAChitgarha

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接