如何基于不同名称的跟踪文件'git merge'一个新文件?

时间:2012-08-17 20:16:31

标签: git merge

我对git很新,并且有以下问题:

我在我的私有分支中处理了一些大型代码文件,并对其进行了重构,因此大部分代码文件被移动到其他几个代码文件中。现在我试图通过“git merge --squash --no-commit mybranch”合并回master,但后来我试图提交它给了我一个错误:

错误:'foo'在索引中进行了更改 (使用--cached保存文件,或使用-f强制删除)

foo的状态被“修改”并“重命名为bar”,而bar是从foo使用的新文件。我怎么告诉git这不是重命名和提交?

1 个答案:

答案 0 :(得分:3)

更改rename threshold on the merge to 100% (or something really high):

git merge -X rename-threshold=100 <branch>
然后,如果两个文件100%相同,

git merge将仅检测此特定合并的重命名。这是一个一次性的合并策略论证,所以你不必担心它是一个永久性的设置。