内容は同じなのに PR が CONFLICTING — CRLF 混入の見かけ上の衝突を修正を壊さず解消する
別コミットの改行コード変更で PR 全体が衝突に見える問題を --ignore-all-space で判定し、rebase -X renormalize で元の修正だけを乗せ直す手順。検証コマンド、.gitattributes での再発防止、複数 PR を worktree で同時に扱う時の罠と報告文の型まで。
約5.6万トークンの節約 (API料金換算で約84円分)。 要件定義・技術調査・試行錯誤ぶんのトークンがまるごと不要になります。※ 出品者申告とレビューに基づく推定値。モデル・タスク内容により変動します。
この巻物について
「内容は同じなのに PR が CONFLICTING — CRLF 混入の見かけ上の衝突を修正を壊さず解消する」は、開発プロセスカテゴリのAI指示書(MDファイル)です。別コミットの改行コード変更で PR 全体が衝突に見える問題を --ignore-all-space で判定し、rebase -X renormalize で元の修正だけを乗せ直す手順。検証コマンド、.gitattributes での再発防止、複数 PR を worktree で同時に扱う時の罠と報告文の型まで。この巻物をAIに読み込ませると、ゼロから設計・調査する場合に比べて 約5.6万トークン(API料金換算で約84円)・93%のトークンを節約できます。
- カテゴリ
- 開発プロセス
- 対応AI
- claude-code、cursor、codex-cli
- ライセンス
- 商用利用可 (再販不可)
- 価格
- 無料
- ゼロから開発時
- 約6万トークン
- この巻物使用時
- 約4,000トークン
- 節約量
- 約5.6万トークン (約84円)
- 更新日
- 2026-10-04
使い方 (AIに渡す3つの方法)
いちばん簡単なのはワンライナー。Claude Code のターミナルに貼るだけです。
claude "https://makimono-md.vercel.app/api/v1/files/pr-conflicting-crlf/raw を読み込んで、この指示書どおりに実装して"
中身
内容は同じなのに PR が CONFLICTING になる — CRLF 混入の見かけ上の衝突を安全に解消する
この指示書が解決すること
GitHub で PR が mergeable: CONFLICTING と表示されるのに、衝突ファイルの中身を見比べると同じに見える。
原因の大半は、別のコミットがファイル全体の改行コードを CRLF↔LF に書き換えており、
git からは「全行が変更された」ように見えていること。これを 元の修正を壊さずに 解消し、再発を止める手順。
AI(Claude Code / Codex など)にこのファイルを読ませれば、以下をそのまま実行できる。
判定(まずこれで原因を確定する)
# 衝突している側のコミット(例: BASE..TARGET)で、空白・改行の違いを無視すると差分が消えるか
git diff --ignore-all-space BASE TARGET -- path/to/file | grep -c '^[-+][^-+]'
# → 0 なら「改行コードだけの差分」。1 以上なら本物の変更が混じっている(下の手順は使わない)
# CR バイトの有無(PowerShell / MSYS でも壊れない書き方)
git show TARGET:path/to/file | tr -cd '\r' | wc -c
$'\r' を grep に渡す書き方は、sh 経由だと unexpected EOF で止まることがある。tr -cd '\r' | wc -c を使う。
解消(修正の中身を触らずに rebase する)
git fetch origin && git fetch <fork-remote>
git checkout -B <branch> <fork-remote>/<branch>
git rebase -X renormalize origin/main
-X renormalize は、両側を .gitattributes の text 設定で正規化してから 3-way merge する。
改行コードだけの差分は衝突にならず、本物の修正だけが乗る。
検証(必ずやる):
git diff --ignore-all-space --stat origin/main <branch> # 元の修正ファイルだけが出ればよい
grep -rl '^<<<<<<<\|^>>>>>>>' src test # 0 件
git show <branch>:path/to/file | tr -cd '\r' | wc -c # 0 なら LF に揃っている
npm test # 既存テスト全件 pass
git push --force-with-lease <fork-remote> <branch>
GitHub 側の mergeable は push 直後 UNKNOWN を返す。15〜20 秒待って再取得する(最大 3〜4 回)。
gh pr view <N> --json mergeable,mergeStateStatus
再発防止
.gitattributes を 1 行追加して、どの OS からコミットしても LF で保存されるようにする。
* text=auto eol=lf
注意: 既存ファイル全体の正規化(git add --renormalize .)は、開いている PR が全部マージされた後に別 PR で行う。
先にやると全行差分になり、開いている PR と再び全行衝突する。
複数の PR を同時に rebase するときの罠
git worktreeで枝ごとに作業場所を分ける。元のディレクトリでチェックアウト中の枝は worktree 側でcheckout -Bできない(already used by worktree)。 失敗に気づかず続けると、直後のコミットが別の枝に乗る。各ステップの後にgit log --oneline -1で枝を確認する。- 2 本目の PR の中身が既に main に入っていた(別経路で push 済み)場合、rebase 後の差分が「改行コードの正規化だけ」になる。 その時は PR のタイトルと本文を実態(.gitattributes 追加のみ等)に書き換える。見た目の差分と説明が食い違う PR を残さない。
相手への報告文(例)
PR #N / #M の rebase が完了し、両方 MERGEABLE になりました。
原因は <コミット> が <file> の改行コードを CRLF に変えていた見かけ上の衝突で、
git rebase -X renormalize で中身を触らずに通りました(テスト <件数> pass)。
.gitattributes(* text=auto eol=lf)を #M に追加しました。
既存ファイル全体の正規化は両 PR のマージ後に別 PR で出します。
よくある質問
+「内容は同じなのに PR が CONFLICTING — CRLF 混入の見かけ上の衝突を修正を壊さず解消する」とは何ですか?
別コミットの改行コード変更で PR 全体が衝突に見える問題を --ignore-all-space で判定し、rebase -X renormalize で元の修正だけを乗せ直す手順。検証コマンド、.gitattributes での再発防止、複数 PR を worktree で同時に扱う時の罠と報告文の型まで。
+どれくらいトークン(費用)を節約できますか?
ゼロから開発すると約6万トークンかかりますが、この巻物を使えば約4,000トークンで済みます。差し引き約5.6万トークン(API料金換算で約84円)・93%の節約です。
+どうやって使いますか?
無料です。MDファイルを Claude Code などのAIに読み込ませるだけ。ワンライナーをターミナルに貼れば実装が始まります。要件定義や技術調査を省いて実装だけにトークンを使えます。
+どのAIツールに対応していますか?
claude-code、cursor、codex-cli に対応しています。
+商用利用できますか?
ライセンスは「商用利用可 (再販不可)」です。
🤝 自分でAIを動かすのは、まだ不安…という方へ
この巻物の内容を、AIを使うプロに丸ごと任せることもできます。姉妹サービスAI代行堂なら「LINEで頼むだけで、仕事が完成」。
関連する巻物
スマホ(Remote Control)から即相談できる Claude Code タブを VS Code に毎朝自動で用意する
自作VS Code拡張で公式Claude Codeのコマンド(editor.openLast/newConversation/renameSessionTab)を叩き、名前付きタブをN本自動補充。夜間はWM_CLOSE→再起動で毎朝揃える。--bg/ターミナル経路・タブ0でのnewConversation・SendKeys再読み込みが失敗する実測付き
夜間ジョブ異常を通知で終わらせず自動修復→AI修理PR→人へ引き渡す閉ループ
監視の『検知して通知』の後段に、決定的Playbook→AIコーダーの隔離worktree修理PR→持ち越し→人への3要素引き渡し、を足す実装指示書。argvで指示を渡すな等の実測の落とし穴つき
ドキュメント駆動開発プロセス CLAUDE.md — 作るものを固めてから書かせる
「AIが暴走して意図と違うものを作る」を根絶する開発プロセス指示書。UI仕様→機能設計→実装の順をAIに強制し、1ファイルごとに承認ゲートを挟む。受託開発・チーム開発向け。
この巻物、誰かのトークンも救えます
𝕏 で節約レシートをシェア