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


当前回答

或者(从Git 1.8.4开始),也可以只获取更改了文件特定部分的所有提交。你可以通过传递起始行和结束行号来得到它。

返回的结果将是修改该特定部分的提交列表。命令如下:

git log --pretty=short -u -L <upperLimit>,<lowerLimit>:<path_to_filename>

其中upperLimit是start_line_number, lowerLimit是ending_line_number

更多信息- https://www.techpurohit.in/list-some-useful-git-commands

其他回答

使用下面的命令获取特定文件的提交:

git log -p filename

如果你希望看到提交中对特定文件的所有更改(而不仅仅是对文件本身的更改),你可以传递——full-diff:

git log -p --full-diff [branch] -- <path>

它应该像git log <somepath>;查看manpage (git-log(1))。

我个人喜欢使用git log——stat <path>,这样我就可以看到每次提交对文件的影响。

要获得一个提交哈希列表,使用git rev-list:

 git rev-list HEAD <filename>

输出:

b7c4f0d7ebc3e4c61155c76b5ebc940e697600b1
e3920ac6c08a4502d1c27cea157750bd978b6443
ea62422870ea51ef21d1629420c6441927b0d3ea
4b1eb462b74c309053909ab83451e42a7239c0db
4df2b0b581e55f3d41381f035c0c2c9bd31ee98d

这意味着有五次提交涉及到该文件。它是按倒序排列的,所以列表中的第一个提交b7c4f0d7是最近的一个。

或者(从Git 1.8.4开始),也可以只获取更改了文件特定部分的所有提交。你可以通过传递起始行和结束行号来得到它。

返回的结果将是修改该特定部分的提交列表。命令如下:

git log --pretty=short -u -L <upperLimit>,<lowerLimit>:<path_to_filename>

其中upperLimit是start_line_number, lowerLimit是ending_line_number

更多信息- https://www.techpurohit.in/list-some-useful-git-commands