
Gitのcherry-pickとは?初心者向けに分かりやすく解説
[st-kaiwa2]
git の cherry-pickについて分かりやすく学びたい、初心者向けに手早く解説してほしい
[/st-kaiwa2]
このような疑問に答えます。
[st-mybox title=”この記事の信頼性” fontawesome=”fa-check-circle” color=”#FFD54F” bordercolor=”#FFD54F” bgcolor=”#FFFDE7″ borderwidth=”2″ borderradius=”5″ titleweight=”bold” fontsize=”” myclass=”st-mybox-class” margin=”25px 0 25px 0″]
りょすけと申します、エンジニアとして六年以上コードを書いてきました。よろしくお願いします。
[/st-mybox]
git の cherry-pickとは?
git の cherry-pickとは、一言で言いますと、一部のコミットだけを別のブランチに取り込みたいときに使うコマンドです。
例えば、あなたはHTML5のコードを修正してたとします、そして現在あなたはdevelopブランチにいるとします。
マスターブランチからdevelopブランチを作って、そのブランチに移動して、
現在の状態は、マスターブランチから複製した下記のような状態だったとして、
<body>
</body>
コミット1が、このような変更を加えたとします。
<body>
<p> コミット1の変更をコードで書きました </p>
</body>
あなたは pタグを一行追加して、新しいコミットを作りました。
其の次に、新しい行をもう一つだけ追加して、新しいコミットを作成しました。
<body>
<p> コミット1の変更をコードで書きました </p>
<p> コミット2の変更、新しい文章を書きました </p>
</body>
これで、三つの状態があることが分かりますね?
このとき、developブランチにコミットされてる最後のコミットだけ、マスターブランチに反映させたいと思ったら、どうすればいいでしょうか?
マージやリベースを使うと、一個目のコミットまで、マスターに反映されてしまうので使えません。
こういう時に、cherry-pickが良く使えます。
一番最後のdevelopの変更だけを、masterに取り込めるのです。
こうすると、マスターのコードの状態はこんな風になります。
<body>
<p> コミット2の変更、新しい文章を書きました </p>
</body>
良い感じですね。