我的一位同事犯了一個在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.被推送給主,但尚未提交。 –
它被推到主,但它還沒有提交 –