[英]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'
- 這是因為雖然它們將包含與F
, G
和H
相同的有效更改,但它們不會是實際相同的提交(到期)到不同的父母+提交時間)。
你想要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.