こんにちは。monipla facebookを担当している佐藤(ま)です。
アライドでは「大佐」と呼ばれております。
前回は、gitの取り消す操作について書きましたが、今回は、git cherry-pickについて書きたいと思います。
これもまた調べてみればたくさん記事が出てくるのですが、コマンドを使わない方の為に今回もSourceTreeの画面も合わせて確認していきたいと思います。
◇ まずcherry-pickとは
特定のコミットを取り出し現在のブランチに取り込む操作です。
◇ リポジトリ構成
今回は以下のようなリポジトリを用意しました。
1 2 3 |
AーBーCーDーEーRevert "E" (master) \ FーG (develop) |
SourceTreeでみるとこのようになります。
では、cherry-pick の動作を確認していきたいと思います。
◇ developの「F」のコミットをmasterのHEADに適用する
まずはコマンドで実行してみます。
1 2 3 4 5 6 7 8 |
# ブランチをmasterにする $ git checkout master # 「F」のコミットをmasterのHEADに適用する $ git cherry-pick 92de9fdaa9c535c7f18d7eca4f1675976a4cf3e7 # また、-nオプションをつけると適用する際に自動コミットされません。 $ git cherry-pick -n 92de9fdaa9c535c7f18d7eca4f1675976a4cf3e7 |
これでmasterブランチのHEADへ、develpの「F」のコミットが適用されました。
1 2 3 |
AーBーCーDーEーRevert "E" (master)ー「F」←ここへdevelopのコミットが追加された \ FーG (develop) |
ちなみにSourceTreeでみるとこのようになります。
では、次にこの操作をSourceTreeで行ってみます。
先程の初期の状態に戻しました。
・masterをチェックアウトした状態で「F」のコミットを右クリックし、Cherry Pickを選択します。
・git cherry-pickが実行され、先程と同じ結果になりました。
コマンドを使わないという方も、SourceTreeでちょっと便利なcherry-pickを使ってみてください。
※参考URL
よく使うであろうことをできるだけ分かりやすく発信していきます。 Gitの情報を無駄にキャッチアップしてます。