【发布时间】:2015-08-11 17:02:44
【问题描述】:
我有两个提交。提交 B 依赖于提交 A。提交 A 被放弃。现在我在合并 B 时遇到错误。它说已提交,由于 B 对 A 的依赖而合并挂起。
我已经用谷歌搜索了,但找不到确切的答案。我需要一步一步的解决方案,因为我是 git 的新手,并且很难理解如何解决这个问题。
事情就是这样。
git 在本地提交 A.
git push for A in remote.
A 被遗弃,但我本地的 git 已提交 A。
git commit in local for B 在同一分支中(使 B 依赖于 A)。
git push B in remote in the same branch.
现在 B 没有合并,因为 A 被放弃了。
我需要合并 B 并且我希望移除对 A 的依赖。希望现在清楚了!
这是服务器错误:
更改 1184 - 已提交,待合并
在 cmets 中:
Gerrit 代码审查
由于缺少依赖项,无法合并更改。这 还必须提交以下更改: (commit-id, 已废弃)
rebase 会起作用吗?如果有,该怎么做?
【问题讨论】:
-
您的问题还不清楚。你运行的确切命令是什么?输出是什么?你想达到什么目的?我认为这不能用给出的信息来回答。
-
所以“B 未合并”是指服务器拒绝提交,因为它不是服务器上当前头部的直接后代?
-
你能把错误信息贴出来吗?
-
@SvenMarnach 否 两个提交都被推送到服务器上。但是 A 被放弃了,因此没有合并,B 没有合并,因为它依赖于 A。
-
我对 Gerrit 不熟悉,也不知道那里发生了什么。如果您将分支推送到 git 服务器,所有可以通过 head 提交到达的提交都将自动包含在内,所以我不确定在这种情况下怎么可能结束。我的猜测是,您必须调用
git fetch才能在服务器上获取当前版本的分支,重新设置基准或在远程头上挑选您的提交 B,然后再次推送。因为我真的不知道发生了什么,所以这更像是一个有根据的猜测而不是一个答案。