是否有一种方法可以列出更改特定文件的所有提交?
当前回答
如果你想查看所有修改文件的提交,在所有分支中,使用这个:
git log --follow --all <filepath>
其他回答
如果您试图跟踪在前一次提交中删除的文件,请使用
git log --follow -- filename
如果你想通过文件名而不是文件路径来查找所有的提交,使用:
git log --all -- '*.wmv'
获取特定文件的所有提交:
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"
参见gif图片
或者(从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
我一直在仔细研究这个问题,所有这些答案似乎并没有真正向我展示所有分支的所有提交。
以下是我通过摆弄gitk编辑视图选项得到的结果。这显示了一个文件的所有提交,而不考虑分支、本地、reflog和远程。
gitk --all --first-parent --remotes --reflog --author-date-order -- filename
它也适用于git日志:
git log --all --first-parent --remotes --reflog --author-date-order -- filename
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的git添加?
- Rubymine:如何让Git忽略Rubymine创建的.idea文件
- Gitignore二进制文件,没有扩展名
- Git隐藏错误:Git隐藏弹出并最终与合并冲突
- 了解Git和GitHub的基础知识
- 没有。Git目录的Git克隆
- Git与Mercurial仓库的互操作性
- 忽略git中修改(但未提交)的文件?
- “git restore”命令是什么?“git restore”和“git reset”之间有什么区别?
- Git合并与强制覆盖
- Git拉另一个分支
- 在Bash命令提示符上添加git分支
- 如何更改Git日志日期格式
- git pull -rebase和git pull -ff-only之间的区别