- t_o_dと申します。
- gitのdifftoolコマンドを利用すれば内部で利用している差分ツールを使い分けることが可能です。
- そこでdifftoolにdifftasticを利用できるように設定してgitのdiffをより見やすくする方法を記録いたします。
イメージ
- 今回行う設定によって、以下のようにdifftoolコマンド利用時は「視覚的な差分表示・文字単位での色付け」が可能となります。

環境
- mac OS Ventura 13.1
- Homebrew 3.6.15
手順
difftasticインストール
- 以下のコマンドでdifftasticをインストールします。
- ※Mac以外のインストール方法はこちらをご参考ください。
brew install difftastic
# 存在確認
type difft
# 操作感確認
# 新しくある「World」が太字になることを確認
difft <(echo "Hello") <(echo "Hello World")
gitconfigの設定
- インストール後、gitのdifftoolに設定するためgitconfigを編集します。
- 今回はlocalとしてgit管理のプロジェクトに設定するので、そのサンプルプロジェクトを以下で用意します。
- ※globalに設定する場合はこちらをご参考に
~/.gitconfig
を編集してください。
- ※コマンドで一時的に利用する場合はこちらをご参考ください。
# サンプルディレクトリ作成・移動
mkdir -p ~/difft-test
cd ~/difft-test
# git初期化
git init
- 作成後、
difft-test/.git/config
ファイルに以下を追記してください。
- ※以下の1行目の「dif」を「diff」と書き換えてください。角括弧内にdiffと書くと記事上で認識されなかったため。
[dif]
tool = difftastic
[difftool]
prompt = false
[difftool "difftastic"]
cmd = difft "$LOCAL" "$REMOTE"
[pager]
difftool = true
設定確認
- configへの追記後、反映されているか確認します。
- 上記で作成したgitプロジェクトに以下で対象ファイルを作成してください。
# 対象ファイル作成(例: docker-compose.yml)
touch docker-compose.yml
- 作成した
docker-compose.yml
の中身を例として以下にしてください。
version: '3.7'
services:
sample:
image: alpine
tty: true
# ステージング
git add docker-compose.yml
# コミット
git commit -m "first commit"
- コミット後、
docker-compose.yml
の中身を以下の内容に変更してください。
version: '3.7'
services:
sample:
image: ubuntu
tty: true
- 変更後、以下のdifftoolコマンドで反映されているか確認してください。
git difftool docker-compose.yml

- 確認後、通常の
git diff
には影響していないことを確認します。
# 標準の出力形式
git diff docker-compose.yml
まとめ
- difftasticを利用すればCUIで文字単位の差分表示が可能なので非常に便利です。
- diffは普段から利用するため自分に合ったdiffツールを利用していこうと感じました。
参考