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

我应该使用什么命令?


当前回答

为了补充@artfurobot的答案,如果您想在两个分支之间显示更改的文件:

git diff --name-status mybranch..myotherbranch

注意优先顺序。如果您先放置较新的分支,那么它将显示文件已删除而不是已添加。

添加grep可以进一步细化:

git diff --name-status mybranch..myotherbranch | grep "A\t"

然后将只显示myotherbranch中添加的文件。

其他回答

以下内容对我很有用:

git show --name-only --format=tformat: SHA1..SHA2

它也可以用于单个提交:

git show --name-only --format=tformat: SHA1

这对于在Jenkins中使用非常方便,在Jenkins中将为您提供一个变更集SHA哈希值列表,并希望对其进行迭代以查看哪些文件已被更改。

这与前面的几个答案类似,但使用tformat:而不是format:删除了提交之间的分隔符。

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

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

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

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

Use

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

它将只记录一行(--prey=oneline),这是更改文件的名称。它还会将所有详细信息记录到输出文件中。

将以下别名添加到~/.bash_profile文件中,然后运行source~/.bah_profile;现在,您随时需要从git存储库中查看上次提交、运行和显示文件中的更新文件。

alias showfiles='git show --pretty="format:" --name-only'
git diff --name-only SHA1 SHA2

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

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

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