我和我的团队正在使用主要音轨(origin/our_feature_branch
)之外的远程分支(origin/dev
)开发一项功能。 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推送两次提交 - 也不允许。
是否有解决方案,或者我必须重新进行合并并尝试记住告诉每个人我们下次开始进行提升时会停止交付吗?
答案 0 :(得分:3)
根据评论中的建议,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/dev
之前的git rebase -p