如果我们曾经将文件移动到不同的位置或重命名它,它以前的所有历史都会丢失在 中git log
,除非我们特别使用git log --follow
. 我认为通常情况下,预期的行为是我们也希望看到过去的历史,而不是在重命名或移动后“切断”,那么有没有理由git log
不默认使用--follow
标志?
2 回答
注意:从 git 2.6 (Q3 2015) 开始,git log 可以默认跟随历史记录一个文件!
请参阅David Turner ( )的提交 076c983(2015 年 7 月 8 日) 。(由Junio C Hamano 合并——在提交 2dded96中,2015 年 8 月 3 日)dturner-tw
gitster
log
: 添加“log.follow
”配置变量从事具有大部分线性历史且频繁重命名整个文件的项目的人可能希望
git log --follow
在检查位于单个路径中的内容的生命周期时始终使用“”。当设置了配置变量并且命令行上有一个(并且只有一个)路径时,教导命令表现得好像
--follow
从命令行给出了“”log.follow
。
git config log.follow true
注意:还有一个(奇怪的是在 2020 年和 Git 2.25 中仍然没有记录)--no--follow
选项,它可以覆盖log.follow
配置设置。
Vser提出了一个补丁。
Jeff King (peff) 指出了我在讨论中提到的相同提交:commit aebbcf5,Git 1.8.2,2012 年 9 月,在哪里--no-follow
被引入。
大概是因为git log
通常用于显示整体提交历史,而不是单个文件或路径的历史。该--follow
选项仅在您查看单个文件时才相关(并且在您命名多个文件时不起作用)。由于这不是最常见的情况,因此将其添加为默认值并没有任何意义。
如果你想让它成为你自己的默认值,你总是可以创建一个别名:
git config --global alias.lf 'log --follow'
现在你可以做得到git lf <filename>
你想要的行为。