スライドショースライドショー

過去のファイルと比較しよう! 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 --name-only

細かい差分を確認する

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

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

git diff --color-words

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

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

git diff [ファイルパス]

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

その他のオプション

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

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

git-diffを使う時の注意点

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

git diff ブランチA..ブランチB

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

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

git diff ブランチA...ブランチB

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

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

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

まとめ

いかがでしたか?

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

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

ナナミ

ナナミ

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

おすすめコンテンツ

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

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