將提交從一個分支複製到另一個分支

git cherry-pick <commit-hash> 會將現有提交中所做的更改應用於另一個分支,同時記錄新提交。實質上,你可以將提交從分支複製到分支。

鑑於以下樹 (來源)

dd2e86 - 946992 - 9143a9 - a6fd86 - 5a6057 [master]
           \
            76cada - 62ecb3 - b886a0 [feature]

假設我們想將 b886a0 複製到 master(在 5a6057 之上)。

我們可以跑

git checkout master
git cherry-pick b886a0

現在我們的樹看起來像:

dd2e86 - 946992 - 9143a9 - a6fd86 - 5a6057 - a66b23 [master]
           \
            76cada - 62ecb3 - b886a0 [feature]

新提交 a66b23 具有與 b886a0 相同的內容(源差異,提交訊息)(但是不同的父級)。請注意,挑選只會獲取該提交的更改(在這種情況下為 b886a0)而不是功能分支中的所有更改(為此你必須使用變基或合併)。