タイガーラック クリエイティブブログ
2025
November
14

ファイル内容は同じなのに Git が差分を検出する問題を .gitattributes で解決した話

はじめに

Git で開発をしていると、「ファイルの内容は変えていないのに差分が出てしまう」という現象に出会うことがあります。

今回は Access の Git 管理にトライしている時に発生しました。
(こちらの記事参照)

実際には内容が変わっていないのに Git が変更として扱ってしまい、コミット時には “No content changes found” が大量に表示される状態でした。
(1000件中950件がそのファイル、みたいなことも発生して、変更差分が全然わからない)

最終的に、.gitattributes を設置することで解決したので
この記事ではその原因と対処法をまとめます。

“No content changes found” が出る主な原因

Git が差分として扱う理由の多くは、改行コード(EOL: CRLF / LF)の違いのようです。

加えて、今回のような Access のエクスポートファイルでは「文字コードの違い」「BOM の有無」など Access 特有の要因も発生します。

内容が同一でも、これらが一致しないと Git は「別ファイル」とみなしてしまい、結果的に “No content changes found” が大量に発生してしまいます。

.gitattributes を置いたら解決した

今回設置した .gitattributes の内容はこちらです。

# Access本体ファイルはバイナリ扱い(差分を取らない)
*.accdb binary
*.mdb binary
*.laccdb binary

# テキストファイルは OS に応じて自動で改行を処理
* text=auto

# .frm ファイルもテキストとして扱う
*.frm text

# vbac.wsf はエクスポート時に含めない
vbac.wsf export-ignore

# bin フォルダは管理外
/bin/

特にこの部分

* text=auto

これを設定すると、

• コミット時 → Git が自動的に改行を正規化
• チェックアウト時 → OS の改行コードで展開

という動作になり、改行の違いによる無駄な差分が発生しなくなるようです。

.gitattributes を設置してコミットし、その後 Access のエクスポートを行うと
“No content changes found”のファイルが変更差分に出てしまう問題が解消され
意味のある変更差分だけが確認できるようになりました。

感想

今回の問題解決にあたって
.gitattributes というファイルの存在を知ることが出来てよかったです。

このカテゴリの最新記事

関連記事

SHOP LIST

タイガーラック株式会社

〒577-0056
大阪府東大阪市長堂1-3-14 TOKUYASU Bld.