我决定从其他旧版本控制系统追溯提交 Git 中从未有过的历史记录。因此,我创建了一个孤立分支“newroot”,并将来自其他版本控制系统的提交导入到其中。以下问题在 Git 中的根提交之前插入一个提交? https://stackoverflow.com/q/645450/850848
“newroot”分支最终得到的文件与“master”分支的根提交完全匹配。
现在我想将“master”分支重新设置为“newroot”孤儿分支,例如:
git rebase --onto newroot --root master
问题是系统提示我解决所有合并冲突。多年来发生了数百次合并。我只是无法手动解决它们。确实没有必要,因为这些合并过去已经解决了。由于变基实际上不会更改内容(因为我在同一棵树上变基),所以我希望 Git 准确地“重播合并”。
有没有办法指定变基应使用与之前使用的相同的分辨率?
我知道“rerere”可能会有所帮助。但我必须在最初合并时就已经启用它,对吧?或者我可以回顾性地重新创建“rerere”缓存吗?
我可以想象我的任务的替代解决方案。以某种方式要求 Git 连接“newroot”和“master”分支,而不实际进行变基。但我不确定这是否可能。
以某种方式要求 Git 连接“newroot”和“master”分支,而不实际进行变基。但我不确定这是否可能。
这就是所谓的接枝点 https://git.wiki.kernel.org/index.php/GraftPoint,后面跟着一个filter-branch https://git-scm.com/docs/git-filter-branch为了改写大师的历史。
See 以这篇文章为例 http://bugsquash.blogspot.fr/2010/03/stitching-git-histories.html or 这个问题 https://stackoverflow.com/q/6088551/6309.
在变基方面,您可以尝试使用像他们一样的合并策略,以使用 master 分支内容解决任何冲突(因为 master 正在被变基)
git rebase --merge -s recursive -X theirs --onto newroot --root master
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)