为什么git log不能默认为git log --follow?

nop*_*ole 15 git

如果我们曾经将文件移动到其他位置或重命名它,那么以前的所有历史记录都将丢失git log,除非我们特别使用git log --follow.我认为通常,预期的行为是我们也希望看到过去的历史,而不是在重命名或移动后"切断",所以有没有理由git log不默认使用--follow旗帜?

Von*_*onC 36

注意:启动git 2.6(2015年第3季度),git log 默认情况下可以跟踪文件的历史记录!

请参阅David Turner()提交的076c983(2015年7月8日).(由Junio C Hamano合并- -提交2dded96,2015年8月3日)dturner-tw
gitster

log:添加" log.follow"配置变量

处理具有大多线性历史且频繁的整个文件重命名的项目的人可能希望git log --follow在检查生活在单个路径中的内容的生命时始终使用" ".

--followlog.follow设置配置变量并且命令行上只有一个(且只有一个)路径时,请将命令表示为从命令行给出" ".

git config log.follow true
Run Code Online (Sandbox Code Playgroud)

  • 一个重要的警告是,`follow = true`隐藏了看起来像无辜的命令中的合并提交,如`git log-。/ subproject`。几乎感觉像是一个Git错误,但是它在操作系统和版本之间始终保持一致,因此也许我误解了当给定pathspec是目录时`--follow`应该做什么。 (2认同)

Joh*_*lla 7

可能是因为git log它通常用于显示整体提交历史记录,而不是单个文件或路径的历史记录.该--follow选项仅在您查看单个文件时才相关(并且在您命名多个文件时不起作用).由于这不是最常见的情况,因此将其添加为默认值并不合理.

如果你想让它成为你自己的默认值,你总是可以创建一个别名:

git config --global alias.lf 'log --follow'
Run Code Online (Sandbox Code Playgroud)

现在你可以做到git lf <filename>你想要的行为.

注意:如果您想提出您要求邮件列表的更改并查看人们的想法,您可以在此处执行此操作.或者,更好的是,您可以提交补丁!