我有三个依赖的Gerrit提交,在它们合并到master分支之前需要进行一些更改。
问题是,自从添加了这三个提交以来,我的主人已经发生了重大变化。我怀疑我应该更新这三个提交的基础,然后进行更改并修改它们,但我不确定这是否是我应该做的实际情况?
我想从A到C逐一进行更改并提交回来。我做了下载>结帐>将复制到bash以获得提交A的分离HEAD,但是当我尝试运行它时,我提交了许多错误,当我提交此代码时,我不习惯使用它们。
我不确定我应该做些什么来将这些更改分别添加到所有三个,然后合并到基础分支。
为什么这很重要? 因为我的代码正在调用一些后端服务,这些服务已经更改了某些类型,并且新主服务器已经正确定义了新类型,而我过时的Gerrit提交仍然使用具有无效属性的旧类型等。
我真的想做什么? 我想我真的想要做的是将我的三个提交的基础更改为基于最新的master而不是一些旧的master提交。或许我只是误解了我应该做的事情。
我尝试了一些东西,我想知道这是否是可能的方法之一? 肯定看来它将我的提交A 置于当前主HEAD之上:
git checkout master
// we're mostly rebasing
git pull origin --rebase
// copied command from gerrit
git fetch ... && git checkout FETCH_HEAD
git rebase master
在我向提交A 添加补丁之后,我也应该为B和C提交执行相同的步骤。
似乎现在更新了类型,我可以更新分离头。我没有修改我的提交,因为我想要某种确认,这将做我打算做的事。
答案 0 :(得分:0)
执行以下操作。
CommitA
CommitB
CommitC
注意1:您可以尝试使用Gerrit UI上的“Rebase”按钮执行此过程,但如果您有冲突,这将无效。
注意2:您可以在过程结束时删除branch_ branches。毕竟,如果你只使用正确的提交ID,一切都会好起来的。
注3:避免以这种方式工作。尽量不要根据非集成(已审核/已批准/已提交)的提交将提交提交给Gerrit。总是尝试使用“并行”提交。