Gerrit:有没有办法将顶级提交推送到同一个分支?

dbk*_*ing 7 git gerrit

在搜索了一个灯并找到了不少类似的问题之后,他们似乎都没有真正回答我的问题(在我找到的相关问题列表下面).

我在尚未审核的提交之上开发了进一步的更改,但我希望将更改分开.当试图推送新补丁进行审核时,我收到错误:

! [remote rejected] HEAD -> refs/for/master (no changes made)
Run Code Online (Sandbox Code Playgroud)

场景: 在我的分支中,我有提交A(合并)< - 提交B(采摘/未合并)< - 提交C(我想推送的最近更改).

如上所述,Commit C依赖于B(但是因为我希望它们分开,所以无法进行压缩.同时删除B不是一个选项,因为它添加了尚未出现的更改是C).

因此,当我尝试推送Commit C进行审核时,我收到上面的错误消息(我知道这是因为Commit B低于新的Commit C).

我的问题是:在提交B合并之前,有没有办法只将 Commit C 发送给Gerrit?或者我真的必须等待B合并才能发送提交C?

家庭作业:

Gerrit工作流程 - 将单个提交推送到主题分支

Git/gerrit,推远程拒绝没有做出任何改动

有没有办法强制Gerrit将分支中的所有提交推送到代码审查?

git - 只推送最顶级的提交到服务器

Mar*_*ira 5

是的,你可以根据unmerged commit-B推送commit-C,但你不能挑选它,因为这样你就可以得到基于commit-B'的commit-C(与原始提交相比没有变化的不同提交) -B.

试试这个程序:

  1. 检查未合并的commit-B(从Gerrit> Change> Download> Download> Checkout复制此命令):

    git fetch https:// USER @ SERVER/a/REPO-PATH/REPO-NAME引用/更改/ X/Y/Z && git checkout FETCH_HEAD

  2. 从commit-B创建一个分支

    git checkout -b some-branch

  3. make commit-C更改,提交并推送到Gerrit

我认为Gerrit将使用commit-C基于之前更改的commit-B创建更改.请注意,如果有人更改了原始提交-B,您需要在合并之前重新设置commit-C.