在搜索了一个灯并找到了不少类似的问题之后,他们似乎都没有真正回答我的问题(在我找到的相关问题列表下面).
我在尚未审核的提交之上开发了进一步的更改,但我希望将更改分开.当试图推送新补丁进行审核时,我收到错误:
! [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?
家庭作业:
是的,你可以根据unmerged commit-B推送commit-C,但你不能挑选它,因为这样你就可以得到基于commit-B'的commit-C(与原始提交相比没有变化的不同提交) -B.
试试这个程序:
检查未合并的commit-B(从Gerrit> Change> Download> Download> Checkout复制此命令):
git fetch https:// USER @ SERVER/a/REPO-PATH/REPO-NAME引用/更改/ X/Y/Z && git checkout FETCH_HEAD
从commit-B创建一个分支
git checkout -b some-branch
make commit-C更改,提交并推送到Gerrit
我认为Gerrit将使用commit-C基于之前更改的commit-B创建更改.请注意,如果有人更改了原始提交-B,您需要在合并之前重新设置commit-C.