ANTIGRAVITY LABEN
記事一覧/Editor View
Editor View/2026-05-20中級

Antigravity Agent の編集で改行コードが混在して差分が壊れる時の診断と対処

Windows/Mac/Linux を行き来して開発していると、Antigravity の Agent 編集後に diff がファイル全体真っ赤になる現象が起きます。CRLF/LF 混在の検出方法と、git・エディタ・Agent の三層で再発を防ぐ実用的な対処をまとめます。

antigravity435agent17改行コードcrlflfgit12windows2wslトラブルシューティング26

Windows のメインマシンと Mac の出張用ノート、それから Cloudflare の検証用に立てた Ubuntu の VM、と複数 OS をまたいで開発をしていると、ある日突然 Antigravity の Agent に小さな修正を依頼しただけなのに、diff のプレビューがファイル全体真っ赤に染まる、という現象に出くわすことがあります。コードはほぼ一文字も変わっていないのに、Git も Antigravity の Checkpoint も「全行が差し替わった」と判定します。これは多くの場合、改行コードの混在が原因です。

私自身、Dolice Labs の 4 サイト(Claude Lab / Gemini Lab / Antigravity Lab / Rork Lab)を Mac と Windows の両方で運用しているので、この問題には何度か足を取られました。最初に気づいたのは、Antigravity の Agent に MDX 記事のフロントマターを微修正させたとき、CI が「793 ファイル変更」と表示して push が拒否された瞬間でした。本当に変更したのは 1 行だけだったのに、です。

この記事は、その時に整理した診断手順と、git・エディタ・Agent の三層で再発を防ぐ実用的な手当てを残しておきます。

症状チェック — まずこれが起きていないか

改行コード混在が原因の場合、次のいずれかが観測されます。

  • Antigravity の Checkpoint プレビューで、変更していないはずの行まで赤緑両方に出る
  • git diff がファイル全体を「変更」として表示する
  • git status で変更ファイル数が直感より明らかに多い
  • VS Code / Antigravity のステータスバーで CRLFLF が混在しているファイルが見える
  • ESLint や Prettier が「Expected linebreaks to be 'LF' but found 'CRLF'」と警告する

特に CI で prettier --checkeslint --max-warnings 0 を走らせている場合、Agent の編集が原因で大量の warning が発生し、PR が通らなくなります。

原因を切り分ける 3 つのコマンド

まずは犯人を特定します。プロジェクトのルートで以下を順に実行してください。

# 1. リポジトリ内のファイルが何で改行されているか調査
git ls-files | while read f; do
  if [ -f "$f" ]; then
    if file "$f" | grep -q "CRLF"; then
      echo "CRLF: $f"
    fi
  fi
done | head -50
 
# 2. Git の自動変換設定を確認
git config --get core.autocrlf
git config --get core.eol
 
# 3. .gitattributes が存在するか
cat .gitattributes 2>/dev/null || echo "(no .gitattributes)"

core.autocrlftrue(Windows のデフォルト)で .gitattributes が無いプロジェクトは、ほぼ確実にこの問題を抱えています。Windows でチェックアウトしたファイルが CRLF に変換され、Mac / Linux で開いたときに LF に戻され、Agent の編集差分にそれが乗ってしまうからです。

対処 1 — .gitattributes でファイル単位の方針を固定する

最も効果が高いのは .gitattributes をプロジェクトに置くことです。リポジトリのルートに次の内容で作成します。

# デフォルトは LF(テキストファイル全般)
* text=auto eol=lf
 
# 明示的にバイナリ扱いするもの
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.webp binary
*.woff binary
*.woff2 binary
*.ttf binary
*.otf binary
*.ico binary
*.pdf binary
*.zip binary
 
# 明示的に LF にするもの(OS をまたいでも揺らがせない)
*.js text eol=lf
*.ts text eol=lf
*.tsx text eol=lf
*.jsx text eol=lf
*.mdx text eol=lf
*.md text eol=lf
*.json text eol=lf
*.yml text eol=lf
*.yaml text eol=lf
*.sh text eol=lf
 
# Windows 固有のスクリプトだけ CRLF
*.bat text eol=crlf
*.cmd text eol=crlf

配置したら、リポジトリ全体に既存ファイルを再正規化します。

# 既存の全ファイルを .gitattributes に従って書き直す
git add --renormalize .
git status
git commit -m "chore: normalize line endings to LF"

このコミットは「実質的な変更ゼロ・改行コードだけ揃える」という性質のものなので、できれば単独のコミットとして残しておくと、後から差分の歴史を追うときに迷いません。

対処 2 — Antigravity / VS Code 側の既定値を LF にする

Antigravity(VS Code ベース)のエディタが新しいファイルを作るときに何で改行するかを揃えます。プロジェクトの .vscode/settings.json に次を追加します。

{
  "files.eol": "\n",
  "files.encoding": "utf8",
  "files.insertFinalNewline": true,
  "files.trimTrailingWhitespace": true,
  "[bat]": { "files.eol": "\r\n" },
  "[cmd]": { "files.eol": "\r\n" }
}

files.eol"auto" のままにしておくと OS のデフォルトに引きずられるので、ここで明示的に LF を選び切ります。.bat.cmd だけは Windows 上で動かす都合で例外的に CRLF にしておきます。

対処 3 — Agent に「改行コードを変えるな」を教える

ここまでで土台は整いますが、Antigravity の Agent そのものに方針を伝えておかないと、リファクタリング系の指示で大きなブロックを書き換えるときに、Agent が独自判断で改行コードを変えてしまうことがあります。

プロジェクトルートに AGENTS.md を置いて、次のような注意書きを入れておきます。

## ファイル編集時の注意
 
- このリポジトリの改行コードは **LF 固定**`.bat`/`.cmd` のみ CRLF)。
- ファイル全体を書き直すような大規模な編集を提案する場合でも、
  既存の改行コードを保ったまま編集を返すこと。
- 既存のファイルを読み込んだ際は、最後の改行を勝手に追加・削除しない。
- UTF-8 BOM をファイル先頭に挿入しない。

Antigravity の Agent は AGENTS.md を読みながら作業するので、この一文があるかないかで diff の安定度がかなり変わります。私の手元では、Agent に大きめの編集を任せたあとに「変更してないはずなのに差分が出てしまった行」のノイズが目に見えて減りました。

検証 — 実際に直ったか確かめる

3 つの対処を入れたあと、次の手順で実際に直っているか検証します。

# 1. 改行コードが混在しているファイルがゼロになったか
git ls-files | while read f; do
  if [ -f "$f" ] && file "$f" | grep -q "CRLF"; then
    echo "残: $f"
  fi
done
 
# 2. ダミーの小さな編集をして diff を見る
echo "" >> some-test-file.md
git diff some-test-file.md
# → 末尾 1 行だけの差分になっていれば成功
 
# 3. 元に戻す
git checkout some-test-file.md

*.bat / *.cmd 以外で「残:」と出るファイルが残っている場合は、おそらく .gitattributes 配置前のキャッシュが残っています。git rm --cached -r . のあと再度 git add . をすると確実にクリーンになります(ただし作業ツリーは消えないので安全です)。

トラブルシューティング — 直らないときの追加確認

ここまでやっても直らない場合、次のうちどれかに該当しているはずです。

(A) Windows 側の core.autocrlf がグローバルに true のまま

git config --global core.autocrlf input

input にすると、コミット時は LF・チェックアウト時はそのまま、という挙動になります。チームの Windows ユーザー全員にこの設定を共有することで、Windows ローカルでだけ CRLF に戻る、という事故が消えます。

(B) WSL とネイティブ Windows でリポジトリを共有している

WSL 側で git clone したリポジトリを \\wsl$\Ubuntu\... 経由で Windows 側 Antigravity から開くと、改行コード変換が二重にかかります。Antigravity から開くリポジトリは、WSL 内に置いた場合は WSL の Antigravity(Remote-WSL モード)から、Windows 側に置いた場合は Windows の Antigravity から、と一致させる方が穏やかです。

(C) 一部のファイルだけ「常に CRLF」が要件

たとえば古い C/C++ のテストスクリプトや、Windows 固有のレガシーツールが食べさせるテキストファイルが対象なら、.gitattributes で個別に eol=crlf を指定しておきます。

test/fixtures/win-only/*.txt text eol=crlf

全体を振り返って

改行コード混在は、Agent の編集差分が「ノイズだらけ」になる地味で厄介な問題ですが、.gitattributes で方針を固定し、エディタの既定値を LF に揃え、AGENTS.md で Agent に方針を伝える、というシンプルな三層で大半は再発しなくなります。

次のアクションとしては、いま開いているプロジェクトのルートで git config --get core.autocrlfcat .gitattributes を一度だけ確かめてみてください。.gitattributes が無いプロジェクトであれば、この記事のテンプレートをそのままコピーして、git add --renormalize . を 1 回走らせる、それだけで diff の景色がだいぶ静かになります。

私自身、複数 OS とリモートの両方を行き来して長く運用していると、こうした小さな環境差は必ずどこかで噛みつかれるものだと感じます。同じ場所でつまづいている方の参考になれば幸いです。

シェア

お読みいただきありがとうございます

Antigravity Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

Editor View2026-06-29
Antigravity に添付した長い PDF をエージェントが読み飛ばす問題と、引用を強制する検証ゲート
Antigravity に添付した長い PDF を、エージェントが自信ありげに、しかし一部読み飛ばして答える問題への対処です。引用を強制するプロンプトと、回答の根拠がPDFに実在するかを検証するゲートを、動くコードで紹介します。
Editor View2026-03-27
Antigravity で Git コンフリクトを AI で自動解決する方法
Antigravity の AI エージェントを活用して Git のマージコンフリクトを効率的に解決する方法を解説。Diff View との連携やチーム開発でのベストプラクティスも紹介します。
Editor View2026-07-12
自分のDSLがモノクロのままだった — Antigravity に最小構成の TextMate 文法を足して色を通す
個人開発で使う独自の設定ファイル(DSL)がエディタで真っ白なままだと、読み違いが増えます。Antigravity に最小構成の TextMate 文法とlanguage-configuration を足して、独自ファイルにハイライトを通すまでの手順を、動くコードと落とし穴つきで整理します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →