有没有办法列出所有更改了特定文件的提交?
#1楼
使用以下命令获取特定文件的提交:
git log -p filename
#2楼
正如jackrabb1t所指出的,-- --follow
更加强大,因为它继续列出重命名/移动之外的历史记录。 因此,如果要查找当前不在同一路径中的文件,或者正在各种提交中重命名的文件,则--follow将对其进行跟踪。
如果要显示名称/路径更改,这可能是更好的选择:
git log --follow --name-status -- <path>
但是,如果您想要一个仅包含重要内容的紧凑列表:
git log --follow --name-status --format='%H' -- <path>
甚至
git log --follow --name-only --format='%H' -- <path>
缺点是--follow
仅适用于单个文件。
#3楼
在Linux上,您可以为此使用gitk。
可以使用“ sudo apt-get install git-gui gitk”进行安装。 它可以通过“ gitk <Filename>”来查看特定文件的提交。
#4楼
gitk <path_to_filename>
假设软件包“ gitk”已经安装。
如果未安装,请执行以下操作:
sudo apt-get install gitk
然后尝试上面的命令。 它适用于Linux。。。如果需要GUI,它可能对Linux用户有所帮助。
#5楼
或者(自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.com/list-some-useful-git-commands
#6楼
使用git log --all <filename>
查看所有分支中影响<filename>
的提交。
#7楼
如果您尝试- 跟随先前提交中使用的文件删除
git log --follow -- filename
#8楼
我一直在仔细研究,所有这些答案似乎并没有真正显示出所有分支机构的所有提交。
这是我通过弄乱gitk编辑视图选项得出的。 这向我显示了文件的所有提交,而与分支,本地,reflog和远程无关。
gitk --all --first-parent --remotes --reflog --author-date-order -- filename
它也可以和git log
:
git log --all --first-parent --remotes --reflog --author-date-order -- filename
#9楼
git log path
应该做你想要的。 从git log
man :
[--] <path>…
Show only commits that affect any of the specified paths. To prevent confusion with
options and branch names, paths may need to be prefixed with "-- " to separate them
from options or refnames.
#10楼
它应该像git log <somepath>
一样简单; 检查联机帮助页( git-log(1)
)。
我个人喜欢使用git log --stat <path>
因此我可以看到每次提交对文件的影响。
#11楼
如果要查看所有更改了文件的提交,请在所有分支中使用此命令:
git log --follow --all <filepath>
#12楼
# 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>
#13楼
如果要按filename
而不是 filename
filepath
查找所有提交,请使用:
git log --all -- '*.wmv'
#14楼
如果您希望查看在更改特定文件的提交中所做的所有更改(而不仅仅是对文件本身的更改),则可以传递--full-diff
:
git log -p --full-diff [branch] -- <path>
#15楼
--follow
适用于特定文件
git log --follow -- filename
与其他解决方案的区别
请注意,其他解决方案包括git log path
(不带--follow
)。 如果要跟踪目录中的更改,该方法很方便,但是在重命名文件时会--follow filename
(因此请使用--follow filename
)。