![](/img/trans.png)
[英]Git: Using rebase --onto/cherry-pick to replay a series of commits
[英]Git: Replay Series of Commits On top Of Other Commit
我有一系列這樣的提交:
A-->B-->C-->D-->E-->F
提交D
和更高版本是一個新功能,所以我更新為提交D-->E-->F
是C
一個分支:
A-->B-->C \\ -->D-->E-->F
現在我在C
之上做了額外的提交,所以我的倉庫目前看起來像這樣:
A-->B-->C-->C'-->C'' \\ -->D-->E-->F
我想在C''
之上重放我的功能分支( D-->E-->F
)中的提交,所以結果是:
A-->B-->C-->C'-->C'' \\ -->D-->E-->F
我該怎么做?
我承認可能會有沖突(我很高興地解決),但算起來也有比手動復制了變化更好的方法。
謝謝!
rebase ( git rebase
) 將重放這些提交:
git checkout feature
git rebase branchC
這會給你:
A-->B-->C-->C'-->C''
\
-->D'-->E'-->F'
這些提交的不同之處在於:
如果您最終定期執行該變基,請不要忘記激活rerere
。
這實質上是將分支代碼重新定位到父級。
參考: https : //git-scm.com/docs/git-rebase
首先需要簽出需要重新定位的分支
git checkout branchD
然后需要使用 git 命令的 "rebase" 選項進行變基
git rebase parentBranch
請注意,有/沒有沖突,將發生新的提交,並為提交創建新的 SHA。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.