强制git在合并时识别文件已移动

时间:2012-04-04 17:46:32

标签: git

我正在开发一个基于开源项目构建的软件,但包含一些专有的更改。最近,开源项目发生了重大变化,该项目已经移动了大量文件。例如:

app / models / my_model.rb - >应用程序/模型/命名空间/ my_namespaced_model.rb

有很多文件被移动,其中一些文件有很多变化。所以git没有合并文件,只是说旧文件已被“删除”并将其标记为合并冲突。问题是,如果只有少量更改,以便git可以意识到文件已被移动,而不是认为它已被删除并且创建了一个新文件,我认为它可以轻松地解决大部分更改。就目前而言,看起来我需要通过手工完成对新文件的所有旧更改。

所以我的问题是,有没有办法强制git意识到文件在无法自动解决时被移动了?

1 个答案:

答案 0 :(得分:1)

git merge默认使用的递归策略有一个" rename-threshold"您可以更改为帮助的选项。您可能需要尝试找到最佳设置。

git merge -X rename-threshold=70 mybranch

该设置与git diff -M具有相同的效果,并在git diff联机帮助页中进行了描述。