簡體   English   中英

Git rebase 子分支到 master

[英]Git rebase child branch to master

我在 Git 存儲庫中有以下情況

A - B [origin/master]
    \
     C [origin/X]
      \
       E - F [origin/Y]

當我開始Y時我沒有意識到,我已經從X分支,我打算從master分支。

如何在包括提交C情況下將Y變基到 master 上?

X上的更改是針對Y上的提交未觸及的文件)

我想結束以下內容:

A - B [origin/master]
    \   \
     \   E - F [origin/Y]
      \
       C [origin/X]

我試過git rebase master ,它似乎沒有改變任何東西,輸出是:

Current branch Y is up to date.

可以像這樣輕松完成:

git rebase --onto origin/master origin/X origin/Y

鑒於您使用的是遠程引用,您將處於分離的 HEAD 上,因此您必須這樣做才能將結果分支推送到原點的分支 Y:

git push origin -f HEAD:Y

與 Git 中的情況一樣,可能有很多方法可以實現這一點,但是以下應該有效:

  1. 在分支Y將此重置為mastergit reset --hard master
  2. Cherry-pick 您的提交: git cherry-pick C..F (假設EF是您的分支上C之后的第一個和最新提交 ID)。

編輯:正如@eftshift0 指出的那樣,我最初在我的git cherry-pick語句中有錯誤的提交 ID - 現在已修復。

暫無
暫無

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

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