[英]`cherry-pick` all commits from branch
我有下一個存儲庫狀態:
我已經開始工作的feature 1
( feature
分支),接下來我已經切換到another_feature
, addition
和addition2
其合並到master
。
現在我回到了feature
,我明白如果沒有addition
,我的feature
就無法工作。 在這種情況下我需要做什么?
我不能使用merge
因為在這種情況下,我將在feature
有another_feature
:
git checkout feature
git merge addition
我可以使用並且工作正常:
git checkout feature
git cherry-pick 9040
但是如果我在addition
分支中有太多的提交就非常不方便。 如何從一個分支中cherry-pick
所有提交並且僅從該分支中cherry-pick
所有提交?
在這種情況下,我將在合並feature
后在我的master
有兩次9040
-commit 。 可能有更好的方法可以從feature
分支中的addition
分支進行更改嗎?
補充:在提交feature 1
我創建了 Pull Request,我們開始討論它。 關閉那個 PR 並打開新的 PR 是非常不可取的。
您正在尋找的是rebase 。 變基將當前分支從當前基礎提交移動到新的基礎提交,以確保到目前為止完成的所有工作都將添加到歷史記錄中,但從不同的時間點開始。
假設這是你的歷史
a -> b -> c : master
\>d : feature
然后在 master 上 rebase 的功能看起來像這樣
a -> b -> c : master
\>d : feature
在您重新定位的功能分支中,您將在提交 d 之前提交 b 和 c
請注意,如果 master 分支進展很長時間,這並不容易,您可能需要修復合並沖突!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.