Linuxのdiffコマンドの方が安心感がある

純粋にブランチ間の差分確認なら git diff コマンドでもいいのですが、ソース差分がないかどうか本当に怖い場合は、diff コマンドでディレクトリ間のファイルを確認するのも方法の 1 つです。

SubVersion を使っていたころは、本番リリース用の trunk と開発用のブランチ 1 つで運用する機会が多く、どちらにもコミットを適用しないといけませんでした。

その頃は、cron で trunk と branch の差分確認シェルを早朝に実行していたのが懐かしいです。

diffコマンドでディレクトリ間の差分を確認する

ディレクトリ間の差分を確認するには、diff コマンドの -r オプションを使えばいいのですが、ファイルが多いとそれなりに時間も掛かるので、特定のディレクトリの差分を確認したい場合は、ルートディレクトリから確認するのは避けておいた方が良さそうです。

また、ディレクトリ間に特化したことではないですが、ファイル差分には改行コードや空白行、行末の空白なども対象となるので、それらを除外したい場合はオプションを追加します。

--strip-trailing-cr : 改行コードを無視する
-b --ignore-space-change : 行末の空白(ホワイトスペース)を無視する
-B --ignore-blank-lines : 空白行を無視する

差分チェックから除外したいファイル

除外したいファイルがある場合は、--exclude オプションで指定します。

複数ある場合は --exclude を並べていきます。

上記オプションを適用して、なおかつ gif, png, jpg, git の拡張子が付いたファイルを無視したい場合は下記のようになります。
(対象は test ディレクトリと master ディレクトリ)

$ diff -u -r --strip-trailing-cr --ignore-space-change --ignore-blank-lines --exclude '.git' --exclude '*.png' --exclude '*.gif' --exclude '*.jpg' test master

オプションを簡略化すると以下でも OK。

$ diff -urbB --strip-trailing-cr --exclude '.git' --exclude '*.png' --exclude '*.gif' --exclude '*.jpg' test master

Tips記事一覧

新着記事一覧です。

関連記事一覧

「Linuxのdiffコマンドでgitブランチ間の差分を確認する」に関連した記事一覧です。

TOP