如何列出更改特定文件的所有提交?

1118
有没有一种方法可以列出所有更改了特定文件的提交?

3
你是在寻找对单个分支、所有本地分支、单个远程分支或者全部的文件进行更改吗?我认为要对全部进行更改需要一个脚本。 - benhorgen
1
git log filename - william_grisaitis
17个回答

11

如果你想跟进之前提交的被删除文件,请使用

git log --follow -- filename

3
git新手的提示:使用git log -p --follow -- filename命令来显示文件的修改记录。另外需要注意的是,“filename”可以是文件、目录或子模块。 - Tino

9

如果您想查看所有分支中更改了某个文件的提交记录,请使用以下命令:

git log --follow --all <filepath>

8
使用 git log --all <filename> 命令查看所有分支上影响 <filename> 的提交记录。

4
gitk <path_to_filename>

假设已经安装了“gitk”包。
如果没有安装,请执行以下操作:
sudo apt-get install gitk

然后尝试上述命令。这是针对Linux的… 如果Linux用户想要一个图形界面,它可能会有所帮助。


1
对于Windows用户,请注意gitk已经与Git for Windows捆绑在一起。 - Soren Bjornstad
对于其他平台的用户来说,apt-get也无济于事,因为它是基于Debian的,而不是通用的。 - undefined

4
要获取提交哈希列表,使用 git rev-list 命令。
 git rev-list HEAD <filename>

输出:

b7c4f0d7ebc3e4c61155c76b5ebc940e697600b1
e3920ac6c08a4502d1c27cea157750bd978b6443
ea62422870ea51ef21d1629420c6441927b0d3ea
4b1eb462b74c309053909ab83451e42a7239c0db
4df2b0b581e55f3d41381f035c0c2c9bd31ee98d

这表示有五个提交已经涉及到了这个文件。它是按照时间倒序排列的,因此列表中的第一个提交 b7c4f0d7 是最近的。


1
在Linux上,您可以使用 gitk 进行此操作。
可使用 "sudo apt-get install git-gui gitk" 进行安装。 可以使用 "gitk <文件名>" 查看特定文件的提交。

1
# Shows commit history with patch
git log -p -<no_of_commits> --follow <file_name>

# Shows brief details like "1 file changed, 6 insertions(+), 1 deletion(-)"
git log --stat --follow <file_name>

参考文献


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