作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我想对一个具有长期复杂 merge 历史的存储库的 master 分支进行 rebase 。我想返回大约 100 次提交以提交 $SHA
我可以使用 git rebase -i $SHA
或 git rebase -i $SHA --rebase-merges
来做到这一点。如果我理解正确,后者包括 merge 提交,而前者不包括。
无论哪种情况,我都会打开 TODO
,然后保存并退出而不做任何更改。
在这两种情况下,rebase 都会失败。在 --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 历史记录,从而删除 merge 提交。但是,这也会导致 50 多个 merge 冲突,手动解决这些冲突需要花费大量时间。
我并不是真的在这里寻找解决这些问题的方法,我更好奇为什么在 TODO 中几乎没有任何更改的情况下进行 rebase 会失败。
最佳答案
我认为这是由于您的标签包含井号,这很可能被解释为评论。您可能想要调整标签及其用途,使其不包含散列标记,然后再次尝试 rebase 。
如果这些 TODO 条目是由 Git 创建的,您可能希望将其作为错误报告给 Git 列表;最近有一些关于无效标签名称的讨论,您可能需要检查是否有人发送了补丁来修复该问题。
关于git - 什么会导致交互式 git rebase 在不修改待办事项的情况下失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58892817/
我是一名优秀的程序员,十分优秀!