Git 在一个文件的日志中获取所有已更改文件的名称

Git 在一个文件的日志中获取所有已更改文件的名称,git,Git,尽管在命令行中指定了一个文件,如何从一次提交中获得所有更改文件的名称 例如,如果我对整个回购进行git日志--name only,我将得到如下日志: commit abc... HEAD Author: Joseph Blow Date: Tue Feb 30 ... Very important Change afile.c anotherfile.c 但是如果我这样做:git log——仅命名为afile.c,那么我会得到以下结果: commit abc... HEAD A

尽管在命令行中指定了一个文件,如何从一次提交中获得所有更改文件的名称

例如,如果我对整个回购进行
git日志--name only
,我将得到如下日志:

commit abc... HEAD
Author: Joseph Blow
Date:   Tue Feb 30 ...

    Very important Change

afile.c
anotherfile.c
但是如果我这样做:
git log——仅命名为afile.c
,那么我会得到以下结果:

commit abc... HEAD
Author: Joseph Blow
Date:   Tue Feb 30 ...

    Very important Change

afile.c
尽管指定了一个文件,但我还是希望看到在提交时更改的所有文件


[编辑]该示例只是输出中众多提交消息之一。

在git中,这可以通过两个命令完成。完成git日志查找sha1后,可以使用git show--name only获取该提交中其他文件的名称。

git log--name only--full diff afile.c

尽管这个名称不会显示一个完全的差异,但是意味着“要考虑所有文件,而不仅仅是指定的文件”。

你可以在一行中合并来做这件事;p> Git show接受哈希列表作为参数,Git log使用
--format=%H
生成包含文件.c提交的哈希列表,然后将此列表用作Git show的输入


我希望这会有所帮助:D

当我这样做时,它会显示所有涉及
afile.c
的提交。请求不只是一次提交吗?这将使它按照OP想要的方式工作,我认为:
git log——仅限名称——完全差异头^..HEAD——afile.c
好吧,那将更简单地说是
git log——仅限名称——完全差异-1 afile.c
,但我认为这不是他请求的,按照他的示例命令。我认为他要么在第一次提交后就剪切了输出,要么这是唯一一次涉及他的文件的提交。除此之外,
^..
可以缩写为
^
git show --name-only $(git log --format=%H -- your_filename.c)