Webサービスやアプリ開発の現場では必須のバージョン管理システム「Git(ギット)」。Gitは、専用のソフトを使えばクリックで直感的に操作することもできますが、いざというときにコマンドが使えると便利です。
前回の 第9話 では、ファイルの差分を確認できる「diff(ディフ)」を学びました。
・差分を確認する
$ git diff [変更前のコミット識別子]..[変更後のコミット識別子]
今回の第10話では、必要なコミットだけを取り込める「cherry-pick(チェリーピック)」をご紹介します。このマンガを通して、わかばちゃんと一緒にGitの知識を身につけていきましょう!
git cherry-pick で「いいとこ取り」をしよう
・基本的な cherry-pick の構文
cherry-pickは、別のブランチから今いるブランチへ、必要なコミットだけをコピーできる便利なコマンドです。1つのコミットを取り込みたい場合は次のとおりです。
$ git cherry-pick [コミットID]
複数のコミットを取り込みたい場合は、このように2点を指定します。
$ git cherry-pick [コミットIDその1]..[コミットIDその2]
2点間の指定方法は、第9話 で出てきたdiffと同じだね。
・取り込みたいけどコミットはしたくない場合
cherry-pickを実行すると、その内容がそのままコミットされます。コミットせずに作業ディレクトリだけに変更を留めたい場合は、オプション「-n」を使います。
$ git cherry-pick -n [コミットID]
コミットIDは $ git log で調べられるよ!
マージしたいけど、JavaScriptの変更は取り込まずにCSSの変更だけコミットしたいとか、部分的に変更を試してみたいときに便利だな。
まとめ
今回は、必要なコミットだけを取り込める cherry-pick について学びました。
・別のブランチから今いるブランチへ、必要なコミットだけをコピーしてくる
$ git cherry-pick [コミットID]
・複数のコミットを取り込みたい場合
$ git cherry-pick [コミットIDその1]..[コミットIDその2]
・コミットせずに作業ディレクトリだけに変更を留めたい場合
$ git cherry-pick -n [コミットID]
Gitにはまだまだたくさんのコマンドがあります。
次回は、まだコミットしたくないファイルを一時退避できる「stash」(スタッシュ)を学びましょう。
▼登場キャラクター紹介
▼わかばちゃんが登場する書籍
▼ これまでの「マンガでわかるGit」