2

foo我在分支的 git 存储库中创建了一个文件master

然后,我创建一个新分支dev,使用git checkout -b dev.

在分支dev上,我将其重命名为barusing git mv foo bar

在那之后,我改变了一些东西foo并提交它。

但是,当我 checkout branch devand时git merge mastergit不会自动为我合并它并要求我自己合并它。

那么,是after I executefoo的祖先吗?有没有办法让git自动合并?bargit mv

4

1 回答 1

2

如“ git merge with changed files ”中所述,您应该尝试调整重命名阈值:

从 git 1.7.4 开始,您可以将合并的重命名阈值指定为

git merge -X rename-threshold=25 

为了控制 25% 的相似度已经足以考虑两个文件重命名候选。
这取决于具体情况以及-X ignore-space-change可能使重命名检测更可靠。

仍然来自Tilman Vogel,当合并未检测到重命名时,该脚本git-merge-associate可以帮助恢复两个文件之间的关联(一个是另一个的重命名版本)。

于 2013-03-16T13:15:23.363 回答