Gitのcherry-pickコマンドとはどんな事をするのか
はじめに
この記事では、「Gitのcherry-pickコマンドの概要」について書いています。
Gitにはたくさんのコマンドがあり、また自分は普段TortoiseGitを使っていて全然コマンドを覚えてないので、自分でコマンドを試しながら学んでいます。
その中で、cherry-pickというコマンドがイマイチ何をするものなのか理解ができていないので調べた内容をまとめて記事にしました。
自分に向けた備忘録の意味もありますが、「Gitのcherry-pickコマンドがよく分からない」な人の一助になれば嬉しいです。
cherry-pickコマンドは何をするコマンドなのか
一言で説明すると、別のブランチで行った特定のコミットを取り込むことができるコマンドです。
例えば、今開発中のリポジトリが以下のように進んでいるとします。
ここで、feature_1
のブランチで、"feature_2
のブランチのFIFTH
と書かれている点のコミット"をfeature_1
でも取り込む必要が出てきとします。
SECOND
のコミットは必要ありません。あくまでFIFTH
と書かれた点のコミットだけを取り込みたいのです。
こういう時に活躍するのがcherry-pick
コマンドです。
mergeコマンドとの違い
似たようなことを行うものとしてmerge
コマンドがあります。これとの違いは何でしょうか。
それは、merge
コマンドはブランチの全てのコマンドを取り込んでしまうという点です。
上で見せた例ですと、feature_1
に対してfeature_2
をマージしてしまうとSECOND
とFIFTH
のコミットの両方がfeature_1
に取り込まれてしまいます。しかしながら今必要としているのはFIFTH
の点のコミットだけなんですね!
指定したコミットだけを取り込む。これがcherry-pickの特徴です。
ちなみに
英語のcherry pickとは自分の気に入ったものだけをつまみ食いするという意味らしいです。
おわりに
「Gitのcherry-pickコマンドの概要」について解説しました。
cherry-pickとはどんなことをするコマンドなのか、mergeコマンドとはどのような違いがあるのか、お分かりいただけたでしょうか。
さいごに、記事を書く上で参考にしたサイトのリンクを以下に掲載します。合わせて読んでいただくと良いかと思います。