让 git 忽略重命名 [重复]
Posted
技术标签:
【中文标题】让 git 忽略重命名 [重复]【英文标题】:Make git ignore rename [duplicate] 【发布时间】:2012-03-27 09:00:27 【问题描述】:我有一个要删除的文件foo.txt
,还有一个要添加的bar.txt
。如果这两个文件有超过 50% 的内容相同,Git 会认为 foo.txt
被重命名为 bar.txt
。我怎样才能让 Git 在不更改全局阈值检测 % 的情况下,在同一次提交中真正将其视为单独删除、单独添加。
谢谢!
【问题讨论】:
是否有特殊原因将其记录为“重命名”是一个问题? 问题是这两个文件的历史不应该混合在一起。假设我有一个名为JohnDoe.txt
的文件,其中包含 John 的工作地址和电话号码 555-555-1212。 John 在 Jane Smith 加入公司的同时离开公司(创建文件 JaneSmith.txt
)。她的工作地址是一样的,但电话号码是 555-555-1313。如果这两个 add/rm 是同一个提交的一部分,Git 会认为它是一个重命名,git log --follow
会告诉我它们是同一个文件(当我显然不希望它们是)。有什么建议吗?
@poke 我不清楚重复的工作原理。我的问题是在您确定的问题前一年提出的。你会选择“最完整”的答案吗?
@torngat 另一个问题之前已关闭指向这个问题,但我相信另一个问题更好地涵盖了 Git 行为背后的共鸣,所以我颠倒了方向(关闭这个问题指向另一个一个代替)。但别担心,一个问题被关闭通常不是一件坏事。您的问题仍然很好并将继续引导人们找到解决方案。
【参考方案1】:
你不能。在内部,它们将被保存为删除和添加。 “重命名”的显示将在稍后计算并取决于该阈值。
【讨论】:
【参考方案2】:要使用 TortoiseGit 禁用重命名检测(尽管作为 git-diff 选项,它本身也应该适用于 git)我在 gitconfig 中添加了以下行,这似乎可以解决问题(虽然基于文档,但我认为不应该):
[diff]
renameLimit = 1
【讨论】:
以上是关于让 git 忽略重命名 [重复]的主要内容,如果未能解决你的问题,请参考以下文章