Edd*_*ett 4 git git-merge git-rebase
我最近不得不看git rebase --rebase-merges,但我运气不佳。
我维护了 Rust 编译器的一个分支,我最近刚刚在上游合并,在此过程中修复了大量合并冲突。然后我不得不进行第二次合并,因为我很不走运,并且在我进行第一次合并时上游存储库被破坏了。
我希望用来git rebase -i --rebase-merges将我的两个合并压缩在一起,但保留上游创建的嵌套合并(如果可能的话)。
问题是,无论我尝试什么,都会收到此错误消息:
$ git rebase --rebase-merges -i sd-upstream/master
error: refusing to update ref with bad name 'refs/rewritten/Auto-merge-of-#65134---davidtwco:issue-19834-improper-ctypes-in-extern-C-fn,-r=rkruppe'
hint: Could not execute the todo command
hint:
hint: label Auto-merge-of-#65134---davidtwco:issue-19834-improper-ctypes-in-extern-C-fn,-r=rkruppe
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
Run Code Online (Sandbox Code Playgroud)
(上面sd-upstream是我的组织的上游,而不是 Rust 的——我在合并之前在我的分支之前对树进行了重新定位)
即使我没有对 todo 做任何更改,我也会收到上述错误。
我做错了什么,还是 git 错误?看起来 git 被 Bors(Rust 团队用来进行汇总合并等的机器人)自动生成的提交消息阻塞了。
我在 Debian 10 上使用 git-2.20.1。
--rebase-mergesGit 2.25 中修复了一个错误:
- 由“git rebase --rebase-merges”生成的待办事项列表中使用的标签用作引用名称的一部分;提出标签的逻辑已被收紧,以避免无法使用的名称。
与该错误一起的是一个相关的错误:
- 避免“git rebase --rebase-merges”生成的重复标签名称的逻辑忘记了机器本身使用“onto”作为标签名称,自动生成的标签必须避免这种情况,已更正。
(这两个都来自 Git 2.25发行说明。)
如果您将 Git 升级到 2.25 版,问题应该会消失。在那之前,我最好的建议是“不要使用--rebase-merges”。
| 归档时间: |
|
| 查看次数: |
1196 次 |
| 最近记录: |