我正在开发一个基于开源项目构建的软件,但包含一些专有的更改。最近,开源项目发生了重大变化,该项目已经移动了大量文件。例如:
app / models / my_model.rb - >应用程序/模型/命名空间/ my_namespaced_model.rb
有很多文件被移动,其中一些文件有很多变化。所以git没有合并文件,只是说旧文件已被“删除”并将其标记为合并冲突。问题是,如果只有少量更改,以便git可以意识到文件已被移动,而不是认为它已被删除并且创建了一个新文件,我认为它可以轻松地解决大部分更改。就目前而言,看起来我需要通过手工完成对新文件的所有旧更改。
所以我的问题是,有没有办法强制git意识到文件在无法自动解决时被移动了?
答案 0 :(得分:1)
git merge默认使用的递归策略有一个" rename-threshold"您可以更改为帮助的选项。您可能需要尝试找到最佳设置。
git merge -X rename-threshold=70 mybranch
该设置与git diff -M
具有相同的效果,并在git diff
联机帮助页中进行了描述。