假设我想对具有漫长而复杂的合并历史的存储库的主分支进行变基。我想回溯大约 100 次提交$SHA
我可以这样做git rebase -i $SHA
or git rebase -i $SHA --rebase-merges
。如果我理解正确,后者包括合并提交,而前者则不包括。
无论哪种情况,我都会得到TODO
打开,只需保存并退出,无需更改任何内容。
在这两种情况下,变基都会失败。如果是--rebase-merges
,它失败并出现以下错误:
hint: Could not execute the todo command
hint:
hint: label #10:-Merge-dev
hint:
hint: It has been rescheduled; To edit the command before continuing, please
hint: edit the todo list first:
hint:
hint: git rebase --edit-todo
hint: git rebase --continue
在没有该标志的情况下,我的印象是它会“展平”git 历史记录,从而删除合并提交。然而,这也导致了超过 50 个合并冲突,手动解决这些冲突需要花费大量时间。
我并不是在这里真正寻找解决这些问题的方法,我更好奇为什么在 TODO 中几乎没有任何更改的情况下进行变基会失败。
我相信这是由于您的标签包含井号标记,这可能会被解释为评论。您可能想要调整标签及其用途,使它们不包含哈希标记,然后再次尝试变基。
如果这些 TODO 条目是由 Git 创建的,您可能希望将其作为错误报告给 Git 列表;最近有一些关于无效标签名称的讨论,您可能需要检查是否有人发送了补丁来修复该问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)