我在存储库中有一堆提交。我想看到两次提交之间更改的文件列表-从SHA1到SHA2。

我应该使用什么命令?


当前回答

这将显示文件中的更改:

git diff --word-diff SHA1 SHA2

其他回答

基于gitdiff-name状态,我编写了gitdiffviewGit扩展,该扩展呈现了两个路径之间变化的层次树视图。

正如巧妙的机器人在回答中所说:

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

但是,如果看到文件在您的分支和它的共同祖先与另一个分支之间发生了更改(例如,origin/master):

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

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

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

另外请注意,如果您只想查看上次提交和之前提交之间的更改文件,这很好:

git show --name-only