PR

git diffコマンドの実践的な使い方と便利なオプション

広告

Gitを使う上で、変更内容の確認は非常に重要な作業です。特にgit diffコマンドは、開発作業で頻繁に使用する基本的なコマンドの1つです。

この記事では、実践的なシーンに応じたgit diffの使い方と、作業効率を上げる便利なオプションを紹介します。

git diffの基本的な使い方

作業ディレクトリの変更を確認する

git diff

これは最も基本的な使い方で、まだステージングエリアに追加されていない(git addする前の)変更内容を確認できます。

ステージング済みの変更を確認する

git diff --staged  # または --cached

git addした後の変更内容を確認する際に使用します。

リモートとの比較

広告

pull前の変更確認

git diff HEAD..origin/main

リモートリポジトリから変更を取り込む前に、どのような変更があるか確認できます。

push前の変更確認

git diff origin/main..HEAD

ローカルの変更をプッシュする前に、リモートとの差分を確認できます。

高度な使用方法

コミット間の比較

# 直前のコミットとの比較
git diff HEAD^

# 特定のコミット同士の比較
git diff <commit-hash-1>..<commit-hash-2>

ブランチ間の比較

git diff branch1..branch2

便利なオプション集

統計情報の表示

git diff --stat

変更されたファイルの一覧と、それぞれの変更量を視覚的に確認できます。

変更ファイル名のみ表示

git diff --name-only

変更があったファイルのパスのみを表示します。スクリプトでの利用に便利です。

広告

より見やすい差分表示

# 単語単位での差分表示
git diff --color-words

# 空白の変更を無視
git diff -w

# 空行の変更を無視
git diff --ignore-blank-lines

特殊なファイルの比較

Excelファイルの比較

Excelファイルの内容も比較できるように設定できます。

ツールのインストール

# Macの場合
brew tap shibukk/git-xlsx-textconv
brew install git-xlsx-textconv

設定ファイルの追加

# .git/config
[diff "xlsx"]      # セクション開始。xlsxという名前のdiffハンドラーを定義
  binary = true     # Excelファイルがバイナリファイルであることを指定
  textconv = git-xlsx-textconv  # 差分を見る際に使用するコンバーターを指定

# .git/info/attributes
*.xlsx diff=xlsx
*.XLSX diff=xlsx

圧縮されたJavaScriptファイルの比較

# .git/info/attributes
*.min.js diff=minjs
*.json diff=minjs

便利な設定

より直感的な差分表示。

以下の設定で差分の表示方法を改善できます。

git config --global diff.compactionHeuristic true

Tips

  1. 特定のファイルのみ比較
git diff -- path/to/file
広告
  1. 表示行数の調整
git diff -U5  # 前後5行を表示
  1. 複数のブランチにまたがる特定ファイルの比較
git diff branch1..branch2 -- path/to/file

まとめ

git diffは非常に柔軟で強力なコマンドです。基本的な使い方を押さえた上で、必要に応じて適切なオプションを組み合わせることで、より効率的な開発作業が可能になります。

特に覚えておくと便利なのは、

  • 基本のgit diffgit diff --staged
  • リモートとの比較用のgit diff HEAD..origin/branch
  • 見やすさを改善する--color-wordsオプション
  • 統計情報を表示する--statオプション

これらのコマンドを日々の開発作業に組み込むことで、コードの変更管理がより確実になり、作業効率も向上するでしょう。

以下のリンクでは、Git及びGitHubに関する記事をまとめています。Gitの基本操作やブランチ管理、GitHubでのリポジトリ管理、共同作業のコツなど。気になるトピックをクリックして、詳しい情報を確認してください。

タイトルとURLをコピーしました