簡體   English   中英

我如何將分支升級到最新的Gerrit提交

[英]How do I upgrade branch to lastest of an old Gerrit commit

我有三個從屬Gerrit提交,需要進行一些更改才能將它們合並到master分支中。

  • 提交A
  • 提交B(取決於A)
  • 提交C(取決於B)

問題是自從添加這三個提交以來,我的主人已經發生了重大變化。 我懷疑我應該更新這三個提交所基於的基礎,然后進行更改並進行修改,但是我不確定這是否是我應該做的實際情況?

我想從A到C逐一進行更改,然后提交。 我做了下載>簽出>復制到bash以到達提交A的分離的HEAD,但是當我嘗試運行它時,我遇到了很多錯誤,當我提交此代碼時,我不曾擁有它們。

我不確定應該將這些更改分別添加到所有三個更改,然后合並到基礎分支中的實際操作。

為什么這很重要? 因為我的代碼正在調用某些已更改某些類型的后端服務,而新的主服務器具有正確定義的新類型,而我過時的Gerrit提交仍使用具有無效屬性等的舊類型。

我實際上想做什么? 我想我實際上想要做的是將我的三個提交的基礎更改為基於最新的主提交而不是一些舊的主提交。 或者,也許我只是誤解了我實際上應該做什么。

編輯

我嘗試了一些東西,但我想知道這是否是可能的方法之一? 似乎可以肯定,這將我的Commit 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提交執行相同的步驟。

似乎類型現在已更新,並且我可以更新分離頭。 我沒有修改我的提交,但是我想以某種方式確認這將完成我打算做的事情。

請執行下列操作。

  1. git獲取

CommitA

  1. git checkout -b branch_a提交
  2. git rebase起源/主
  3. 解決沖突
  4. git commit-修改
  5. git push origin branch_a:master

CommitB

  1. git checkout -b branch_b提交B
  2. git rebase branch_a
  3. 解決沖突
  4. git commit-修改
  5. git push origin branch_b:master

CommitC

  1. git checkout -b branch_c提交C
  2. git rebase branch_b
  3. 解決沖突
  4. git commit-修改
  5. git push origin branch_c:master

注意1:您可以嘗試使用Gerrit UI上的“ Rebase”按鈕執行此過程,但是如果發生沖突,則此操作將無效。

注意2:您可以在過程結束時刪除branch_分支。 畢竟,它們並不是真正需要的,如果僅使用正確的提交ID,則一切都會很好地工作。

注意3:避免以這種方式工作。 盡量不要基於非集成(已審核/批准/提交)的提交將提交推送到Gerrit。 始終嘗試使用“並行”提交。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM