我的一位同事犯了一个在Gerrit但不在主人身上的代码。我想在其上工作。我应该樱桃挑选还是签出一份承诺,以便在gerrit的顶部工作?
我应该创建一个本地分支,然后樱桃选择他的提交和工作吗?或者我应该检查他的代码并创建一个本地分支并在其上工作。
哪一个才是正确的做法?
任何帮助,将不胜感激
我的一位同事犯了一个在Gerrit但不在主人身上的代码。我想在其上工作。我应该樱桃挑选还是签出一份承诺,以便在gerrit的顶部工作?
我应该创建一个本地分支,然后樱桃选择他的提交和工作吗?或者我应该检查他的代码并创建一个本地分支并在其上工作。
哪一个才是正确的做法?
任何帮助,将不胜感激
提取和检查他的承诺,我称之为一个无名的分支(如refs/changes/xx/yyyxx/1
一个引用),然后在它的工作。无论它是分离的HEAD状态还是创建本地分支都无关紧要。完成提交后,请推送至refs/for/<branch>
。你的提交和他的将依赖。
更新:
这没关系樱桃挑选他的承诺,然后在它上面的工作,如果你不关心历史,因为最终版本的文件内容会以两种方式同。区别在于分支历史。如果你检查他的,然后在其上工作,历史将是线性的。至少围绕你们提交的部分是线性的。如果你挑选他,然后在其上工作,你会看到两个分支合并。一个是你的本地分支,另一个是他的本地分支。他们分歧。在你的分支上挑选的提交是多余的。将来某一天,当有人看到历史时,他可能会感到困惑,并问为什么你们两个人都对相同的块进行了修改。
此外,由于您使用的是Gerrit,因此可能存在潜在风险,可能会引起您的烦恼。当你挑选他的提交时,将会创建一个新的提交。这两个提交具有相同的提交消息,包括Change-Id
。如果您的同事已提交/合并,您的同事推动了他,并且Gerrit将阻止您的同事,因为Gerrit不允许在此情况下将同一个Change-Id
推送到同一分支。如果他仍然打开,那么你的第二个补丁集将被修改。但是我恐怕你的格里特也禁止一个人修改别人的承诺。即使它允许你修改他的提交,也没有预料到。无论如何,它会失败或行为不当。据我所知,这是非常令人沮丧的,尤其是当其他人推动你尽快完成它时。
只是好奇,为什么樱桃挑选和工作之上呢? 感谢您的快速回复。 –
@VivekS我更新了答案。 – ElpieKay
执行以下操作:
1)转到你的同事变化对格里特
2)点击下载>收银台> “复制到剪贴板” 按钮
3)在执行复制命令你的本地库
git fetch https://[email protected]/a/REPO-FULL-PATH refs/changes/CHANGE-NUMBER/CHANGE-PATCHSET && git checkout FETCH_HEAD
4)建立本地分支机构来管理你的工作
git checkout -b LOCAL-BRANCH
5)进行更改
6)加入并提交更改
git add .
git commit
7)推到格里特审查
git push origin HEAD:refs/for/master
注意:你的变化是取决于你的同事改变。如果他/她推送一个新的补丁集(例如修复一些审阅问题),则需要将您的更改重新分配给新的补丁集。如果他/她放弃更改,则需要放弃您的或基于主人重做。如果可能的话,避免基于待处理的更改工作,始终更喜欢基于合并的工作。
谢谢MarceloÁvilade Oliveira。 还有一个问题,因为我是git和Gerrit的新手,何时是正确的时间使用樱桃挑选并从下载选项中提取选项。 –
您可以使用这些选项将其他分支机构所做的更改传送给您(例如:将分支主机更改为分支发布)。樱桃挑选重做提交并将其合并。 –
你是什么意思是“在gerrit而不是在主人”? 1.被推送/提交给另一个分支2.被推送给主,但尚未提交。 –
它被推到主,但它还没有提交 –