Git 如何将分支升级到旧Gerrit提交的最新分支
我有三个从属Gerrit提交,在合并到主分支之前需要进行一些更改Git 如何将分支升级到旧Gerrit提交的最新分支,git,gerrit,Git,Gerrit,我有三个从属Gerrit提交,在合并到主分支之前需要进行一些更改 犯 提交B(取决于A) 提交C(取决于B) 问题是,自从添加了这三个提交之后,我的主人发生了显著的变化。我怀疑我应该更新这三个提交所基于的基础,然后进行更改和修改,但我不确定这是否是我应该做的实际场景 我想从A到C一个接一个地进行更改,然后提交回来。我确实下载了>签出>复制到bash以获得提交的分离头,但是当我尝试运行它时,我得到了很多错误,我在提交此代码时没有遇到这些错误 我不确定我应该做些什么来将这些更改单独添加到所有三个
- 犯
- 提交B(取决于A)
- 提交C(取决于B)
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提交执行相同的步骤
似乎类型现在已经更新,我可以更新分离的头部。我还没有修改我的提交,因为我希望得到某种形式的确认,这将完成我打算做的事情。执行以下操作
注3:避免以这种方式工作。尽量不要基于非集成(已审核/批准/提交)提交将提交推送到Gerrit。始终尝试使用“并行”提交。听起来像是您想要执行的
git checkout master;git-checkout-b东西;吉特樱桃采摘委员会;吉特樱桃采摘委员会;吉特樱桃皮克委员会;git签出主机;git merge stuff
,解决过程中出现的冲突,或者简单地重新设置现有分支的基础。我不使用gerrit,但假设它不会从根本上改变git的使用方式。@AD7six如果你认识gerrit,我应该通过在UI中编辑cherry pick链接来选择我的提交吗?我不认识gerrit,但答案几乎肯定是肯定的。关于注3。通常情况下,我总是在进行Gerrit review中的新代码更改之前进行一次git重置--hard HEAD~1。但有时提交是相关的,它们应该是串行的而不是并行的,因为一个提交实际上依赖于另一个提交的代码。我正在处理的这三个案例就是这样一个问题。根据我问题中的编辑,我在哪里成功地重新设置了最新的master,这难道不简单吗?因此,基本上,当我修改代码并修改提交时,B和C会工作吗?因为A的基础已经被设置为最新的?不,你会在最新的提交中创建A,但B和C将保持在A的基础上。