jac*_*b1t 1008
该--follow
特定文件的工作
git log --follow -- filename
Run Code Online (Sandbox Code Playgroud)
与其他解决方案的区别
请注意,其他解决方案包括git log path
(没有--follow
).如果您想要跟踪目录中的更改,但是在重命名文件(因此使用--follow filename
)时会遇到麻烦,那么这种方法很方便.
Gab*_*art 120
git log path
应该做你想做的事.来自git log
男人:
[--] <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.
Run Code Online (Sandbox Code Playgroud)
小智 53
我一直在密切关注这一点,所有这些答案似乎并没有真正向我展示所有分支机构的所有提交.
这是我通过搞乱gitk编辑视图选项而想出的.这显示了文件的所有提交,无论分支,本地,reflog和远程.
gitk --all --first-parent --remotes --reflog --author-date-order -- filename
Run Code Online (Sandbox Code Playgroud)
San*_*raj 42
使用以下命令获取特定文件的提交:
git log -p filename
Run Code Online (Sandbox Code Playgroud)
rfu*_*duk 37
它应该如此简单git log <somepath>
; 检查联机帮助页(git-log(1)
).
我个人喜欢使用,git log --stat <path>
所以我可以看到每个提交对文件的影响.
Eng*_*hly 19
要获取特定文件的所有提交,请使用:
git rev-list HEAD --oneline FileName
例如
git rev-list HEAD --oneline index.html
输出
7a2bb2f update_index_with_alias
6c03e56 update_changes
e867142 Revert "add_paragraph"
Run Code Online (Sandbox Code Playgroud)
Rob*_*rto 16
正如jackrabb1t指出的那样,--follow
因为它继续列出重命名/移动之外的历史,因此更加强大.因此,如果您要查找当前不在同一路径中的文件或在各种提交中重命名的文件, - follow将跟踪它.
如果要显示名称/路径更改,这可能是更好的选择:
git log --follow --name-status -- <path>
Run Code Online (Sandbox Code Playgroud)
但如果你想要一个更紧凑的列表,只有重要的事情:
git log --follow --name-status --format='%H' -- <path>
Run Code Online (Sandbox Code Playgroud)
甚至
git log --follow --name-only --format='%H' -- <path>
Run Code Online (Sandbox Code Playgroud)
缺点是--follow
只适用于单个文件.
jit*_*hit 15
或者(从Git 1.8.4开始),也可以获得改变了特定部分的所有提交文件的.您可以通过传递起始行和结束行号来获得此结果.
返回的结果将是修改此特定部分的提交列表.命令如下:
git log --pretty=short -u -L <upperLimit>,<lowerLimit>:<path_to_filename>
Run Code Online (Sandbox Code Playgroud)
这里upperLimit
是start_line_number
和lowerLimit
是ending_line_number
sno*_*lli 10
如果您尝试 - 在先前的提交使用中删除已删除的文件
git log --follow -- filename
Run Code Online (Sandbox Code Playgroud)
如果要查看所有更改文件的提交,请在所有分支中使用:
git log --follow --all <filepath>
Run Code Online (Sandbox Code Playgroud)
如果您想要查找所有提交filename
而不是 filepath
,请使用:
git log --all -- '*.wmv'
Run Code Online (Sandbox Code Playgroud)
如果您希望查看在更改特定文件的提交中所做的所有更改(而不仅仅是对文件本身的更改),则可以传递--full-diff
:
git log -p --full-diff [branch] -- <path>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
275853 次 |
最近记录: |