過去のファイルと比較しよう! git-diffの使い方を解説

こんにちは! ライターのナナミです。

Gitを使う上で超便利な比較コマンド、みなさん活用していますか?

比較コマンドってどうやって使うんだろう…
なんか色々書き方あるみたいだけど、何が違うの?

という疑問をお持ちの方もいるかもしれませんね。今回はGitの比較コマンド、git-diffについて解説していきます!

基本的な使い方から、オプションを組み合わせる方法、さらに使用時の注意点までご紹介していきます。これで比較の基本はバッチリ! ぜひ覚えていってくださいね。

diffとは?

diffとは、2つのファイルを比較して違いなどを探すことができるものです。例えばAのファイルには名前だけ、Bのファイルには名前と自己紹介が書いてあるとしましょう。

AのファイルとBのファイルを比較すると、自己紹介の有無という違いができているのがわかりますね。これをプログラム上で行なって、違いがあったら教えてくれるのがdiffなのです。

どんな時にdiffを使うべき?

diffを使うべき時とはズバリ、マージをする前です。複数人で開発をしていると、同時進行で作業を行なうために同じファイルを編集する可能性が出てくることがありますよね。

そんな時そのままGitでマージをしてしまうと、誰かが修正したソースを消してしまう可能性があったり、マージするべきソースがわからなくなってしまったりすることもあります。なのでマージをする前には必ずdiffを使って差分を確認するようにしましょう。

git-diffの使い方

Gitにはdiffを行えるコマンドがすでに用意されています。下記のコマンドを使えば、リポジトリの中にあるファイル全てを比較することができます。

これが一番基本的な書き方です。
簡単ですね!

git-diffの活用例色々

git-diffはオプションを活用することで、色々な組み合わせで比較したり、比較した結果の表示を変えたりすることができます。よく使われるものをピックアップして紹介していきましょう。

差分があるファイル名だけを表示する

複数のファイルを比較した際、とりあえずどのファイルに差分ができているのかだけ確認したい場合がありますね。そんな時は、下記のように記述することで、差分があったファイルのファイル名のみを表示してくれます。

細かい差分を確認する

git-diffそのままで比較すると、行ごとにチェックを行なうモードになります。しかし文字の量が多いファイルの一文字一文字を確認したい場合にはちょっと不便ですよね…

そんな時は下記のように書くことで、詳細に差分を確認してくれます。

特定のファイルを比較する

全体はやらなくてもいいんだけど、このファイルだけ差分をとりたい。という場合もご安心ください。ファイルパスを指定することで、特定のファイルのみ差分を出してくれます。

ちなみにファイルパスの部分をディレクトリパスにすると、指定したディレクトリのみ差分を出します。覚えておくとちょっと便利です。

その他のオプション

他にもgit-diffのオプションは盛りだくさん。もしこの記事で使いたいオプションが見つからなかったら、下記の記事などで確認してみてくださいね。

>>比較も自由自在!git-diffのオプション一覧

git-diffを使う時の注意点

最後に、git-diffを使う際の注意点を確認しておきましょう。まずは下記のコマンドをご覧ください。

これは、ブランチAとブランチBを比較するコマンドです。
ブランチ名の間に「..」がありますね。

次に、下記のコマンドをご覧ください。

お気づきでしょうか?
ブランチAとブランチBの間が「…」になっています。この場合、ブランチAブランチBで共通な最後のコミットであるマージベースと、ブランチAを比較するコマンドになります。

そう、「..」と「…」で意味が大きく変わるのです。詳しい解説は下記の記事が行なっています。こちらも確認し、間違えたりしないよう注意してくださいね。

>>比較する時に要注意!「..」と「…」の違い

まとめ

いかがでしたか?

diffはバージョンを管理する時に必須といっても過言ではないものです。難しいものではない上、ファイル自体を変更するコマンドではないので、ぜひ色々ためして覚えていってくださいね!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

ナナミ

ナナミ

1991年生まれ。
文系大学卒業後、フリーターを経てフロントエンジニアになる。
HTML、CSS、 jQueryなどのコーディングやCMS設計に従事。
文系からエンジニアを目指す人にもわかりやすい記事を目指して、日々精進中。
体は日本酒でできている。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説