Gitでディレクトリ全体をdiffしたい場合は–dir-diff

git difftoolコマンドを使うとMeldとかWinMergeなどの外部diffツールが使えます。

色付けできたりして分かりやすく差異を表示できますが、ファイル単位で1つずつdiffされるのが不便でした。何か良い方法はないか探してみたところ、--dir-diffというオプションを使うと一括してdiffできるみたいです。

設定

.git/configに以下の内容を追加します。(Meldを使う場合のサンプル)

[diff]  
        tool = Meld
[difftool "Meld"]
        cmd = \"C:/Program Files (x86)/Meld/Meld.exe\" \"$LOCAL\" \"$REMOTE\"
        trustExitCode = false

使い方

git difftool --dir-diff

こんな感じのコマンドで最新バージョンからの差分を一括してdiffできるようになります。

リンク

Git – git-difftool Documentation
https://git-scm.com/docs/git-difftool

Meld
https://meldmerge.org/

WinMerge – You will see the difference…
https://winmerge.org/

関連記事

.gitignoreの内容が反映されない場合
.gitignoreに書いたのに無視されない(.gitignoreの内容が反映されない)場合は $ git rm --cached path/to/file を試してみると良いそうです。 .gitignoreへの記述前にインデックスされたファイルについては無視されないようになっているみたいです。 リンク [Git] .gitignoreの仕様詳解 - Qiitaht...

gitで直前のpushを取り消すコマンド
gitで間違ったコードをpushしてしまった場合は次のようなコマンドで直前のcommitを取り消すことができるそうです。 $ git reset --hard HEAD^ $ git push -f 取り消しはしない方が良いという話もあるようですが、公開しているサーバーで間違ったメールアドレスやユーザー名でpushしてしまった場合はこんな感じで削除できるようです。 複数人で作業...

Gitでmasterの内容をgh-pagesにコピー
Gitでmasterの内容をgh-pagesにコピーするコマンド git checkout gh-pages git merge master git push origin gh-pages .git/configに書いてmasterにpushした時に自動で行う方法もあるようです。 ...

コメントを残す

メールアドレスが公開されることはありません。