繁体   English   中英

如何为合并设置基准,但保留合并提交

[英]How to rebase a merge but keep the merge commit

我和我的团队正在使用远离主磁道( origin/dev )的远程分支( origin/our_feature_branch )开发功能。 Gerrit用于评论等。

通过git merge origin/dev升级远程分支,然后解决冲突,提交和git push origin HEAD:refs/for/our_feature_branch

Gerrit强制执行一项规则,即一次只能推送一次提交。 我对此无能为力。

假设我开始进行提升运动:

git fetch
git checkout -b uplift origin/our_feature_branch
git merge origin/dev

但是在这里,我被困在解决一些冲突上,回归测试需要一些时间才能运行,并且一些团队成员向Gerrit的功能分支提交了另一个提交。 现在,此提交位于我正在进行的提升的基础提交之上。

现在我该怎么做?

如果我将合并提交基于功能分支,则会删除该合并,并在其顶部添加从origin/dev合并的所有提交-这不是一个选择。 如果我与功能分支合并,则最终将发生合并,并且最终必须将两次提交推送至Gerrit-这也是不允许的。

有解决方案吗?还是我必须重新进行合并,并记得下次我开始进行提拔工作时要记得告诉大家我们有送货站吗?

如评论中所建议, git rebase -p解决了这个问题

开始创建提升提交:

git fetch
git checkout -b uplift origin/our_feature_branch
git merge origin/dev
git commit

某些内容已提交给Gerrit的origin/our_feature_branch

执行以下操作以重新合并合并并保持合并:

git fetch
git rebase -p origin/our_feature_branch

现在可以将合并提交推送到Gerrit,它将基于origin/our_feature_branch最新origin/our_feature_branch以及与git rebase -p之前相同的origin/dev

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM