派遣で働くエンジニアのスキルアップを応援するサイト

PRODUCED BY RECRUIT

第10話 git cherry-pick でいいとこ取り!【連載】マンガでわかるGit ~コマンド編~

f:id:itstaffing:20200316101115j:plain

Webサービスやアプリ開発の現場では必須のバージョン管理システム「Git(ギット)」。Gitは、専用のソフトを使えばクリックで直感的に操作することもできますが、いざというときにコマンドが使えると便利です。

前回の 第9話 では、ファイルの差分を確認できる「diff(ディフ)」を学びました。

・差分を確認する

$ git diff [変更前のコミット識別子]..[変更後のコミット識別子]

今回の第10話では、必要なコミットだけを取り込める「cherry-pick(チェリーピック)」をご紹介します。このマンガを通して、わかばちゃんと一緒にGitの知識を身につけていきましょう!

【筆者】湊川 あいさん
【筆者】湊川 あいさん
フリーランスのWebデザイナー・漫画家・イラストレーター。マンガと図解で、技術をわかりやすく伝えることが好き。 著書『わかばちゃんと学ぶGit使い方入門』・『わかばちゃんと学ぶ Googleアナリティクス』・『わかばちゃんと学ぶ Webサイト制作の基本』『運用ちゃんと学ぶ』が発売中のほか、マンガでわかるGit・マンガでわかるDocker・マンガでわかるRuby・マンガでわかるScrapbox・マンガでわかるLINE Clova開発・マンガでわかる衛星データ活用といった分野横断的なコンテンツを展開している。

・Amazon著者ページ
・Twitterアカウント

git cherry-pick で「いいとこ取り」をしよう

f:id:itstaffing:20200316101118j:plain
f:id:itstaffing:20200316101121j:plain

・基本的な cherry-pick の構文

cherry-pickは、別のブランチから今いるブランチへ、必要なコミットだけをコピーできる便利なコマンドです。1つのコミットを取り込みたい場合は次のとおりです。

$ git cherry-pick [コミットID]

複数のコミットを取り込みたい場合は、このように2点を指定します。

$ git cherry-pick [コミットIDその1]..[コミットIDその2]


f:id:itstaffing:20190617145538j:plain
2点間の指定方法は、第9話 で出てきたdiffと同じだね。
・取り込みたいけどコミットはしたくない場合

cherry-pickを実行すると、その内容がそのままコミットされます。コミットせずに作業ディレクトリだけに変更を留めたい場合は、オプション「-n」を使います。

$ git cherry-pick -n [コミットID]


f:id:itstaffing:20190617145538j:plain
コミットIDは $ git log で調べられるよ!
f:id:itstaffing:20190617145541j:plain
マージしたいけど、JavaScriptの変更は取り込まずにCSSの変更だけコミットしたいとか、部分的に変更を試してみたいときに便利だな。

まとめ

今回は、必要なコミットだけを取り込める cherry-pick について学びました。

・別のブランチから今いるブランチへ、必要なコミットだけをコピーしてくる

$ git cherry-pick [コミットID]

・複数のコミットを取り込みたい場合

$ git cherry-pick [コミットIDその1]..[コミットIDその2]

・コミットせずに作業ディレクトリだけに変更を留めたい場合

$ git cherry-pick -n [コミットID]

Gitにはまだまだたくさんのコマンドがあります。
次回は、まだコミットしたくないファイルを一時退避できる「stash」(スタッシュ)を学びましょう。


▼登場キャラクター紹介
f:id:itstaffing:20200122103525j:plain

▼わかばちゃんが登場する書籍

▼ これまでの「マンガでわかるGit」