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

我应该使用什么命令?


当前回答

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

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

其他回答

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

这将显示文件中的更改:

git diff --word-diff SHA1 SHA2
git diff --name-only SHA1 SHA2

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

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

查看第十次最新提交和第五次最新(或大约)提交之间的差异。

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

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

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

如果需要绝对路径,请删除--relative。

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

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