Mar*_*ryl 5 git rebase git-merge git-rebase git-merge-conflict
我决定从其他旧版本控制系统追溯提交历史,这是 Git 中从未出现过的。所以我创建了一个孤立分支“newroot”,并将提交从其他版本控制系统导入到它。以下问题在 Git 中的根提交之前插入提交?
“newroot”分支最终得到与“master”分支的根提交完全匹配的文件。
现在我想将“master”分支重新设置为“newroot”孤儿分支,例如:
git rebase --onto newroot --root master
Run Code Online (Sandbox Code Playgroud)
问题是我被提示解决所有合并冲突。在多年的时间里,有数百次合并。我只是无法手动解决它们。而且真的没有必要,因为这些合并在过去已经解决了。由于 rebase 实际上不会改变内容(因为我在同一棵树上进行 rebase),我希望 Git 准确地“重放合并”。
有没有办法指定 rebase 应该使用与以前使用的相同的分辨率?
我知道“rerere”在这里可能会有所帮助。但是我必须在最初合并时已经启用它,对吗?或者我可以追溯重新创建“rerere”缓存?
我可以想象我的任务的替代解决方案。以某种方式要求 Git 连接“newroot”和“master”分支,而不实际重新定位。但我不确定这是否可能。
以某种方式要求 Git 连接“newroot”和“master”分支,而不实际重新定位。但我不确定这是否可能。
那就是所谓的嫁接点,后面跟着一个filter-branch,以便重写主历史。
请参阅此帖子作为示例或此问题。
在变基方面,您可以尝试使用像他们这样的合并策略,使用 master 分支内容解决任何冲突(因为 master 正在变基)
git rebase --merge -s recursive -X theirs --onto newroot --root master
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1211 次 |
| 最近记录: |