如何在重命名文件后合并两个不同的文件

时间:2013-03-16 08:29:21

标签: git

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

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

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

之后,我更改了foo中的内容并提交了它。

但是,当我结帐分支devgit merge master时, git 不会自动为我合并,并要求我自己合并。

因此,执行foo后,bar的祖先是git mv吗?有没有办法让 git 自动合并?

1 个答案:

答案 0 :(得分:2)

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

  

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

git merge -X rename-threshold=25 
  

为了控制25%的相似性已足以考虑将两个文件重命名为候选者   根据案例和-X ignore-space-change,这可能会使重命名检测更可靠。

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