Git 重命名文件后如何合并两个不同的文件
我在branchGit 重命名文件后如何合并两个不同的文件,git,Git,我在branchmaster上的git存储库中创建了一个文件foo 然后,我使用git checkout-b dev创建了一个新的分支dev 在分支dev上,我使用gitmvfoobar将其重命名为bar 在那之后,我在foo中更改一些内容并提交它 但是,当我签出分支dev和git merge master时,git不会自动为我合并它,并要求我自己合并它 那么,在我执行gitmv之后,foo是bar的祖先吗?有没有办法让git自动合并?如“”中所述,您应该尝试调整重命名阈值: 从Git1.7.4
master
上的git存储库中创建了一个文件foo
然后,我使用git checkout-b dev创建了一个新的分支dev
在分支dev
上,我使用gitmvfoobar
将其重命名为bar
在那之后,我在foo
中更改一些内容并提交它
但是,当我签出分支dev
和git merge master
时,git不会自动为我合并它,并要求我自己合并它
那么,在我执行gitmv
之后,foo
是bar
的祖先吗?有没有办法让git自动合并?如“”中所述,您应该尝试调整重命名阈值:
从Git1.7.4开始,您可以将合并的重命名阈值指定为
为了控制25%的相似性已经足够考虑两个文件重命名候选。 这取决于具体情况,再加上
-X ignore space change
,可能会使重命名检测更加可靠
尽管如此,当合并没有检测到重命名时,脚本可以帮助恢复两个文件之间的关联(一个是另一个的重命名版本)。
foo
不是bar
的祖先,因为git不跟踪重命名,它只跟踪文件内容。谢谢。我将尝试hg
,因为它支持跟踪重命名@wRAR@wrar它可能不会跟踪重命名,但git merge recursive肯定会通过与祖先的相似性来检测它们。
git merge -X rename-threshold=25