我有两个提交。提交 B 依赖于提交 A。提交 A 被放弃。现在我在合并 B 时遇到错误。它说已提交,由于 B 对 A 的依赖而合并待处理。
我用谷歌搜索过但找不到确切的答案。我需要一步一步的解决方案,因为我是 git 的新手,并且很难理解如何解决这个问题。
这就是发生的事情。
git commit 在本地 A.
git push 远程 A。
A 被放弃了,但我本地的 git 已经提交了 A。
git commit 在同一分支中的 B 本地(使 B 依赖于 A)。
git 将 B 推送到同一分支的远程。
现在 B 没有合并,因为 A 被放弃了。
我需要合并 B,并且希望删除对 A 的依赖。希望现在清楚了!
这是服务器错误:
更改 1184 - 已提交,合并待处理
在评论中:
Gerrit 代码审查
由于缺少依赖项,无法合并更改。这
还必须提交以下更改:
(commit-id,已废弃)
变基会起作用吗?如果可以的话,该怎么办呢?
有多种方法可以解决您的问题。选择您觉得最舒服的一个。
这是一个:
-
git checkout yourbranch
(确保您位于正确的分支)
-
git reset --hard A^
(将所有内容重置为A之前的提交)
-
git cherry-pick B
(其中 B 是您要保留的提交的哈希值)
-
git log
(确认这是你想要的)
-
git push --force
(可能需要指定其他选项,具体取决于您通常的推送方式)
这是另一个,结果是等效的:
-
git checkout yourbranch
(确保您位于正确的分支)
-
git rebase --onto A^ A
(将 A 之后的所有内容重新设置为 A 之前的提交之上,有效地删除 A)
-
git log
(确认这是你想要的)
-
git push --force
(可能需要指定其他选项,具体取决于您通常的推送方式)
这是第三个,结果仍然相同:
-
git checkout yourbranch
(确保您位于正确的分支)
-
git rebase --interactive A^
(将打开您的编辑器)
- 删除显示提交A的行,保存并关闭
-
git log
(确认这是你想要的)
-
git push --force
(可能需要指定其他选项,具体取决于您通常的推送方式)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)