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

强制git在合并时识别文件已移动,git,Git,我正在开发一个软件,它建立在一个开源项目之上,但包含一些专有的更改。最近,开源项目有一个大的更新,它移动了一堆文件。例如: app/models/my_model.rb-->app/models/namespace/my_namespaced_model.rb 有许多文件被移动,其中一些文件有很多更改。所以git并不是在合并文件,而是说旧文件已经被“删除”,并将其标记为合并冲突。问题是,如果只是少了一些更改,git就可以意识到文件已经被移动了,而不是认为它被删除了,并且创建了一个新的文件,那么我

我正在开发一个软件,它建立在一个开源项目之上,但包含一些专有的更改。最近,开源项目有一个大的更新,它移动了一堆文件。例如:

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

有许多文件被移动,其中一些文件有很多更改。所以git并不是在合并文件,而是说旧文件已经被“删除”,并将其标记为合并冲突。问题是,如果只是少了一些更改,git就可以意识到文件已经被移动了,而不是认为它被删除了,并且创建了一个新的文件,那么我认为它会很容易地对大部分更改进行排序。目前看来,我需要手动完成对新文件的所有旧更改


所以我的问题是,有没有办法强迫git在无法自动识别文件时意识到该文件已被移动?

git merge默认使用的递归策略有一个“重命名阈值”选项,您可以更改该选项以提供帮助。你可能需要进行实验以找到最佳设置

git merge -X rename-threshold=70 mybranch

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

我得到了以下信息:“致命:合并递归的未知选项:-Xrename threshold=70”。我还尝试使用诸如“忽略空间更改”之类的选项,因为有些文件有缩进更改,但得到了相同的错误。我在Ubuntu 10.10上使用Git1.7.1。我需要更新的版本吗?输入错误,它是
-X…
(带空格)。