[英]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 中的情況一樣,可能有很多方法可以實現這一點,但是以下應該有效:
Y
將此重置為master
: git reset --hard master
。git cherry-pick C..F
(假設E
和F
是您的分支上C
之后的第一個和最新提交 ID)。 編輯:正如@eftshift0 指出的那樣,我最初在我的git cherry-pick
語句中有錯誤的提交 ID - 現在已修復。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.