web-dev-qa-db-ja.com

gitあるコミットから別のブランチに変更を適用します

私はgit rebaseに似ていますが、並列コミットを折りたたまないで実行したいと思います。

次のコミットがあるとします。

  B (bar)
 /
A-C-D (foo)

次に、DがブランチfooのCに導入した変更を取得し、ブランチバーのBに適用します。私は次のようになります:

  B-E (bar)
 /
A-C-D (foo)

コミットBとEの違いは、コミットCとDの違いと同じです。これは可能ですか?パッチを作成せずにそれを行う方法はありますか?

33
juniper-

はい:

git checkout -b mergebranch B
git cherry-pick D
37
cforbish

チェリーピックアウトするブランチの最後のコミット(例ではfoo)がマージコミットの場合、git cherry-pick branchname~1を使用してチェリーピックへの特定のコミットをポイントし、以前のコミットを取得できますマージの親。

1
aaaarrgh

私の場合、別のブランチの特定のコミットの変更を適用する必要がありました。私はそれらをそのようにチェリーピッキングすることでそれをしました:git cherry-pick COMMIT-HASH

0
Patrick