簡體   English   中英

`cherry-pick` 所有來自分支的提交

[英]`cherry-pick` all commits from branch

我有下一個存儲庫狀態:

在此處輸入圖片說明

我已經開始工作的feature 1feature分支),接下來我已經切換到another_featureadditionaddition2其合並到master

現在我回到了feature ,我明白如果沒有addition ,我的feature就無法工作。 在這種情況下我需要做什么?

我不能使用merge因為在這種情況下,我將在featureanother_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.

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