缺少Gerrit中的依赖

tre*_*der 3 git dependencies gerrit

我在Gerrit中有四个变化,每个变化取决于之前的变化(当然除了第一个).我放弃了第二和第三,并审查了第一和第四.由于首先不依赖任何东西,Gerrit设法自动合并它.现在,第四个(取决于被遗弃的第三个)是一个真正的问题.

格里特表示Submitted, Merge Pending:

Change could not be merged because of a missing dependency.
The following changes must also be submitted:
Run Code Online (Sandbox Code Playgroud)

并给我改变 - 两个被遗弃的变化的ID.我该如何摆脱这种混乱?

从我已经通过谷歌搜索和SO-ing(特别是这个这个 - 没有多大帮助)学到的,整个问题出现了,因为我没有使用分支,只是直接工作master.

好吧,我保证下次会更好,但如何解决当前的问题呢?我试图应用许多解决方案,在互联网或这里,在SO上找到,但它们都没有帮助.每个git pullgit push索赔,这两个我的本地和远程均达到最新的,但我看不出有什么办法摆脱依赖的变化.

Mag*_*äck 6

您需要从提交4的祖先中删除与放弃的更改相对应的两个不需要的提交,即所需的状态仅用于git log列出提交4和1.完成后,推送新的补丁集应该删除所声明的依赖关系.摆脱提交2和3可以通过多种方式完成,包括

  • 做一个交互式rebase(git rebase -i HEAD~4并删除你不想要的两个提交的行),或
  • 基于上游分支的尖端和挑选提交4启动新分支.