gpt4 book ai didi

git - 解决 git rebase 冲突的方式与之前解决冲突的方式相同

转载 作者:太空狗 更新时间:2023-10-29 14:44:11 26 4
gpt4 key购买 nike

我决定从其他旧版本控制系统追溯提交 Git 中从未有过的历史记录。所以我创建了一个孤立分支“newroot”,并将来自其他版本控制系统的提交导入到它。后续问题Insert a commit before the root commit in Git?

“newroot”分支最终的文件与“master”分支的根提交完全匹配。

现在我想将“master”分支 rebase 到“newroot”孤儿分支上,例如:

git rebase --onto newroot --root master

问题是系统提示我解决所有 merge 冲突。多年来有数百次 merge 。我只是无法手动解决它们。而且真的没有必要,因为这些 merge 在过去已经解决了。由于 rebase 实际上不会更改内容(因为我是在同一棵树上 rebase ),所以我希望 Git 准确地“重放 merge ”。

有没有办法指定 rebase 应该使用与之前使用的分辨率相同的分辨率?

我知道“rerere”可能在这里有所帮助。但是我必须在最初 merge 时已经启用它,对吗?或者我可以回顾性地重新创建“rerere”缓存吗?


我可以为我的任务想象一个替代解决方案。以某种方式要求 Git 连接“newroot”和“master”分支,而不实际 rebase 。但我不确定这是否可能。

最佳答案

To somehow ask Git to concatenate the "newroot" and "master" branches, without actually rebasing. But I'm not sure if that's possible.

这叫做 graft point , 其次是 filter-branch为了重写主历史。
参见 this post as an examplethis question .

在 rebase 方面,您可以尝试使用像他们那样的 merge 策略,使用 master 分支内容解决任何冲突(因为 master 正在 rebase )

git rebase --merge -s recursive -X theirs --onto newroot --root master

关于git - 解决 git rebase 冲突的方式与之前解决冲突的方式相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38092355/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com