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

PRODUCED BY RECRUIT

第9話 git diff で差分を確認!【連載】マンガでわかるGit ~コマンド編~

f:id:itstaffing:20200214110629j:plain

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

前回の 第8話 では、checkoutの機能を2つに分けた新コマンド「switch」 と「restore」を学びました。

・ブランチを切り替える

$ git switch [ブランチ名]

・作業ディレクトリ上の編集内容を取り消す

$ git restore [ファイル名]

今回の第9話では、ファイルの差分を確認できる「diff」(ディフ)をご紹介します。「diff」は使う機会も多く、便利なコマンドのひとつです。このマンガを通して、わかばちゃんと一緒にGitの知識を身につけていきましょう!

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

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

ファイルの変更差分を確認するには、git diff

f:id:itstaffing:20200214110632j:plain
f:id:itstaffing:20200214110636j:plain

・基本的なdiffの構文

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

diffコマンドを使うと、指定した2点間のファイルの差分を確認できます。

f:id:itstaffing:20190617145538j:plain
diff は Difference、つまり英語で「違い」という意味かな。

git diff を使ってみよう

4つのケースごとに、git diffコマンドの実例を見てみましょう。

◆コミット同士の差分を確認する

f:id:itstaffing:20200214110639j:plain

上のように2点間のファイルの差分を確認したい場合は簡単です。

$ git diff 1ccc226..cffb553

このように git diff コマンドを実行すると、次のように違いがある部分が表示されます。

f:id:itstaffing:20200214110642j:plain

+マーク・・・追加された行
-マーク・・・削除された行

◆ブランチ同士の差分を確認する

ブランチ同士の差分を見ることもできます。

$ git diff master..develop

たとえば「masterブランチにプルリクエストを送る前に、developブランチに追加した内容を確認したい」といった場合に使えます。

◆git pullする前に、リモート追跡ブランチとの差分を確認する

たとえば今あなたがmasterブランチにチェックアウトしていて、リモートリポジトリのmasterと比較したい場合、次のとおり操作します。

1.まずリモートリポジトリから更新内容を取得してきて

$ git fetch origin

2.ローカルリポジトリのmasterブランチの最新コミット(HEAD)と、リモート追跡ブランチ(origin/master)を比較する

$ git diff HEAD..origin/master

◆git push する前に、リモート追跡ブランチとの差分を確認する

ひとつ前の例とは逆のパターンも可能です。ローカルで進めたコミットをpushする前に、リモートリポジトリの状態と比較したいときにはこのように実行します。

$ git diff origin/master..HEAD
 
f:id:itstaffing:20190617145538j:plain
いずれにせよ、 $ git diff [変更前]..[変更後] っていう形式で書けばいいんだ。わかりやすいね!
f:id:itstaffing:20190617145541j:plain
ちなみに $ git add する前に、 $ git diff とだけ書いて実行すると、編集した箇所と直前のコミットの差分が確認できるぞ。

まとめ

今回は、ファイルの差分を確認できる diff について学びました。

・差分を確認する

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

Gitにはまだまだたくさんのコマンドがあります。
次回は、必要なコミットだけを取り込める「cherry-pick」(チェリーピック)を学びましょう。

参考:Git公式ドキュメント(英語)

・git switch
・git restore

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

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

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