我知道我可以使用rerere
来记录合并与冲突的解决方案。
但在我目前的情况下,这对我没有帮助:
我有一个实验分支,我使用--strategy ours
合并到我的主分支,丢弃我在那里做的任何更改,但保留所有历史记录以供将来参考。实验分支的变化与主分支中的任何变化无关,因此没有冲突,因此rerere
没有记录任何内容。
现在我想重新定义历史的这一部分(使用--preserve-merges
),但由于没有冲突,Git愉快地使用默认策略重放合并,而不是<我最初使用的em>我们的策略。现在,来自过时的实验分支的所有更改都会在我的重新分支主分支中结束(但我希望它们再次被丢弃)。
我如何教Git记住我使用的合并策略,并在重新定位时重复使用它们?
答案 0 :(得分:1)
您可能可以运行git rebase -p -i
(交互式)并使用手动exec git merge -sours ...
调用替换选择合并。注意我没有测试它是否有效。
答案 1 :(得分:1)
您还可以使用具有此功能的脚本git-rehi(免责声明:我编写):它检测ours
合并(通过比较树哈希)并重放它们作为ours
还有其他工具:git-reintegrate,git-remerge等您可以查看是否这样做。
答案 2 :(得分:0)
我相信您正在寻求强制递归合并。您可以通过添加--no-ff
来完成此操作,并且将进行合并提交。
来自git-scm documentation 的- 无-FF
即使合并解析为快进,也会创建合并提交。这是合并带注释(可能已签名)标记时的默认行为。