簡體   English   中英

Git:在其他提交之上重放一系列提交

[英]Git: Replay Series of Commits On top Of Other Commit

我有一系列這樣的提交:

A-->B-->C-->D-->E-->F

提交D和更高版本是一個新功能,所以我更新為提交D-->E-->FC一個分支:

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.

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