簡體   English   中英

Git從之前提交的范圍創建分支?

[英]Git create branch from range of previous commits?

我有一堆OS項目的提交,我想把最后說的20個提交拉到另一個分支,所以我可以提取請求。

我怎么能這樣做? 原因是我可能有150次提交,但其中大多數都是為了更大的貢獻,還沒有准備好。 但下一個版本即將發布。

謝謝!

你可以用cherry-pick來做到這一點。 如果您的long_branch歷史記錄如下:

A-B  <-- master
   \
    C-D-E-F-G-H  <-- long_branch

並且你想把F到H的內容移動到另一個分支,比如short_branch ,它基於master

git checkout master -b short_branch

這使

A-B  <-- master, short_branch
   \
    C-D-E-F-G-H  <-- long_branch

然后......(注意提交范圍是E..H ;左邊是范圍的非包含)

git cherry-pick E..H

這使:

    F'-G'-H'  <-- short_branch
   /
A-B  <-- master
   \
    C-D-E-F-G-H  <-- long_branch

請注意,我將新提交稱為F'G'H' - 這是因為雖然它們將包含與FGH相同的有效更改,但它們不會是實際相同的提交(到期)到不同的父母+提交時間)。

你想要20個提交保留在當前分支上嗎? 如果沒有,那么保持對當前分支的引用20提交:

git checkout -b current_branch_save current_branch~20

然后,使用rebase移動最后20個提交

git checkout current_branch
git rebase --onto another_branch current_branch~20 current_branch

現在你有了current_branch_save,你的~100'還沒有准備好'提交,而last_branch上有current_branch,最后20個。

暫無
暫無

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

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