0

我正在开发一款基于开源项目但包含一些专有更改的软件。最近,开源项目发生了重大更新,移动了一堆文件。例如:

app/models/my_model.rb --> app/models/namespace/my_namespaced_model.rb

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

所以我的问题是,有什么方法可以强制 git 在无法自动找出文件时意识到文件已被移动?

4

1 回答 1

1

git merge 默认使用的递归策略有一个“rename-threshold”选项,您可以更改它以提供帮助。您可能需要进行试验才能找到最佳设置。

git merge -X rename-threshold=70 mybranch

该设置与 中的效果相同,git diff -M并在git diff手册页中进行了描述。

于 2012-04-04T18:16:15.863 回答