[{"data":1,"prerenderedAt":426},["ShallowReactive",2],{"content-/parallel-branch-problem":3,"all-pages-for-dir":403,"related-/parallel-branch-problem":404,"og-image-/parallel-branch-problem":425},{"id":4,"title":5,"body":6,"category":387,"concepts":387,"description":388,"extension":389,"meta":390,"navigation":391,"ogImage":387,"path":392,"project_name":387,"published":393,"publishedAt":394,"seo":395,"source":387,"stem":396,"tags":397,"todo":387,"unpublished":393,"updatedAt":387,"__hash__":402},"pages/2025-12/2025-12-31/parallel-branch-problem.md","並列ブランチ問題: 同じファイルへの複数PRがコンフリクトする理由と対策",{"type":7,"value":8,"toc":362},"minimark",[9,13,17,26,29,33,40,50,53,56,68,75,78,122,133,136,146,149,152,158,161,183,186,192,195,199,205,215,219,225,233,237,243,251,254,257,293,297,302,308,313,319,322,328,331],[10,11,12],"h1",{"id":12},"並列ブランチ問題",[14,15,16],"h2",{"id":16},"概要",[18,19,20,21,25],"p",{},"Claude Code（またはClaude Webのリサーチプレビュー）で複数のタスクを並列実行しそれぞれがPRを作成した場合、",[22,23,24],"strong",{},"同じファイルの同じ位置を変更","しようとするとコンフリクトが発生する。",[14,27,28],{"id":28},"実際に起きたケース",[30,31,32],"h3",{"id":32},"状況",[18,34,35,39],{},[36,37,38],"code",{},"urawa.json","ファイルに財務データを追加するタスク：",[41,42,43,47],"ul",{},[44,45,46],"li",{},"元のファイル: 2024年のデータのみ",[44,48,49],{},"追加したいデータ: 2023年、2022年、2021年",[30,51,52],{"id":52},"実行方法",[18,54,55],{},"Claude Codeリサーチプレビュー（Web版）で3つの別々のセッションを作成し、それぞれに依頼：",[57,58,59,62,65],"ol",{},[44,60,61],{},"2023年のデータを取得してPR作成",[44,63,64],{},"2022年のデータを取得してPR作成",[44,66,67],{},"2021年のデータを取得してPR作成",[18,69,70],{},[71,72],"img",{"alt":73,"src":74},"alt text","/2025-12/2025-12-31/image.png",[18,76,77],{},"上記スクリーンショットのように、3つのセッションが並列で作成された：",[79,80,81,94],"table",{},[82,83,84],"thead",{},[85,86,87,91],"tr",{},[88,89,90],"th",{},"セッション",[88,92,93],{},"状態",[95,96,97,106,114],"tbody",{},[85,98,99,103],{},[100,101,102],"td",{},"Add 2021 data to JSON file",[100,104,105],{},"⚠️ コンフリクト（+194行）",[85,107,108,111],{},[100,109,110],{},"Add 2022 data to JSON file",[100,112,113],{},"✅ 完了（+204行）",[85,115,116,119],{},[100,117,118],{},"Add 2023 data to JSON to prompt file",[100,120,121],{},"進行中",[18,123,124,125,128,129,132],{},"各セッションは独立してブランチを作成するため、",[22,126,127],{},"同じmasterをベース","に",[22,130,131],{},"同じファイルの同じ位置","を変更しようとした。",[30,134,135],{"id":135},"結果",[137,138,143],"pre",{"className":139,"code":141,"language":142},[140],"language-text","PR #21 (2023年追加) → ✅ マージ成功\nPR #22 (2022年追加) → ❌ コンフリクト\nPR #23 (2021年追加) → ❌ コンフリクト\n","text",[36,144,141],{"__ignoreMap":145},"",[14,147,148],{"id":148},"なぜコンフリクトが発生したか",[30,150,151],{"id":151},"図解",[137,153,156],{"className":154,"code":155,"language":142},[140],"                 master (2024年のみ)\n                        │\n    ┌───────────────────┼───────────────────┐\n    │                   │                   │\n    ▼                   ▼                   ▼\nPR #21              PR #22              PR #23\n(2023年追加)        (2022年追加)        (2021年追加)\n    │                   │                   │\n    │                   │                   │\n「2024年の後に       「2024年の後に       「2024年の後に\n 2023年を追加」      2022年を追加」       2021年を追加」\n\n    ↓ 同じ位置への変更！\n",[36,157,155],{"__ignoreMap":145},[30,159,160],{"id":160},"問題の本質",[57,162,163,168,173,178],{},[44,164,165],{},[22,166,167],{},"3つのブランチが同じベース（master）から分岐",[44,169,170],{},[22,171,172],{},"3つとも「2024年データの後」という同じ位置に新しいデータを挿入",[44,174,175],{},[22,176,177],{},"最初のPRがマージされると、その位置の構造が変わる",[44,179,180],{},[22,181,182],{},"残りのPRは古いベースを参照しているためコンフリクト",[30,184,185],{"id":185},"マージ後の状態",[137,187,190],{"className":188,"code":189,"language":142},[140],"PR #21マージ前: years: [2024]\nPR #21マージ後: years: [2023, 2024]\n                       ↑\n              2024の後の位置が変わった！\n\nPR #22は「2024の後に2022を追加」しようとするが、\n実際のmasterでは2024の後に2023が既に存在\n→ コンフリクト\n",[36,191,189],{"__ignoreMap":145},[14,193,194],{"id":194},"解決方法",[30,196,198],{"id":197},"方法1-順次実行最も安全","方法1: 順次実行（最も安全）",[137,200,203],{"className":201,"code":202,"language":142},[140],"2023年取得 → PR作成 → マージ完了を待つ\n         ↓\n2022年取得 → PR作成 → マージ完了を待つ\n         ↓\n2021年取得 → PR作成 → マージ\n",[36,204,202],{"__ignoreMap":145},[18,206,207,210,211,214],{},[22,208,209],{},"メリット",": コンフリクトが発生しない\n",[22,212,213],{},"デメリット",": 時間がかかる",[30,216,218],{"id":217},"方法2-1つのprブランチで全部まとめる","方法2: 1つのPR/ブランチで全部まとめる",[137,220,223],{"className":221,"code":222,"language":142},[140],"1つのブランチで:\n  2023年追加 → 2022年追加 → 2021年追加\n         ↓\n1つのPRでまとめてマージ\n",[36,224,222],{"__ignoreMap":145},[18,226,227,229,230,232],{},[22,228,209],{},": 1回のマージで完了、コンフリクトなし\n",[22,231,213],{},": PRが大きくなる、レビューが大変",[30,234,236],{"id":235},"方法3-並列実行後にリベース","方法3: 並列実行後にリベース",[137,238,241],{"className":239,"code":240,"language":142},[140],"並列でPR作成\n    ↓\n1つ目をマージ\n    ↓\n残りのPRをリベース（最新masterに追従）\n    ↓\n2つ目をマージ\n    ↓\n残りをリベース...\n",[36,242,240],{"__ignoreMap":145},[18,244,245,247,248,250],{},[22,246,209],{},": 並列で作業を開始できる\n",[22,249,213],{},": リベース作業が必要",[14,252,253],{"id":253},"ベストプラクティス",[30,255,256],{"id":256},"判断基準",[79,258,259,268],{},[82,260,261],{},[85,262,263,265],{},[88,264,32],{},[88,266,267],{},"推奨方法",[95,269,270,277,285],{},[85,271,272,274],{},[100,273,24],{},[100,275,276],{},"順次実行 or 1つのPR",[85,278,279,282],{},[100,280,281],{},"異なるファイルを変更",[100,283,284],{},"並列実行OK",[85,286,287,290],{},[100,288,289],{},"同じファイルの異なる位置を変更",[100,291,292],{},"並列実行OK（注意は必要）",[30,294,296],{"id":295},"claude-codeへの指示例","Claude Codeへの指示例",[18,298,299],{},[22,300,301],{},"悪い例（コンフリクトの可能性）:",[137,303,306],{"className":304,"code":305,"language":142},[140],"「2023年、2022年、2021年のデータをそれぞれ別のPRで追加して」\n",[36,307,305],{"__ignoreMap":145},[18,309,310],{},[22,311,312],{},"良い例:",[137,314,317],{"className":315,"code":316,"language":142},[140],"「2023年、2022年、2021年のデータを1つのPRで追加して」\n",[36,318,316],{"__ignoreMap":145},[18,320,321],{},"または:",[137,323,326],{"className":324,"code":325,"language":142},[140],"「まず2023年のデータを追加してマージして。\n完了したら次に2022年をお願いします」\n",[36,327,325],{"__ignoreMap":145},[14,329,330],{"id":330},"まとめ",[41,332,333,339,345,355],{},[44,334,335,338],{},[22,336,337],{},"同じファイルの同じ位置への変更","は並列実行するとコンフリクトする",[44,340,341,344],{},[22,342,343],{},"最初のPRがマージされた時点","で他のPRのベースが古くなる",[44,346,347,350,351,354],{},[22,348,349],{},"順次実行","か",[22,352,353],{},"1つのPRにまとめる","のが安全",[44,356,357,358,361],{},"並列で作成した場合は",[22,359,360],{},"リベース","で解決可能",{"title":145,"searchDepth":363,"depth":363,"links":364},2,[365,366,372,377,382,386],{"id":16,"depth":363,"text":16},{"id":28,"depth":363,"text":28,"children":367},[368,370,371],{"id":32,"depth":369,"text":32},3,{"id":52,"depth":369,"text":52},{"id":135,"depth":369,"text":135},{"id":148,"depth":363,"text":148,"children":373},[374,375,376],{"id":151,"depth":369,"text":151},{"id":160,"depth":369,"text":160},{"id":185,"depth":369,"text":185},{"id":194,"depth":363,"text":194,"children":378},[379,380,381],{"id":197,"depth":369,"text":198},{"id":217,"depth":369,"text":218},{"id":235,"depth":369,"text":236},{"id":253,"depth":363,"text":253,"children":383},[384,385],{"id":256,"depth":369,"text":256},{"id":295,"depth":369,"text":296},{"id":330,"depth":363,"text":330},null,"Claude Codeで複数のタスクを並列実行した際に発生するGitコンフリクトの原因と、回避するためのベストプラクティス","md",{},true,"/parallel-branch-problem",false,"2025-12-31T00:00:00.000Z",{"title":5,"description":388},"2025-12/2025-12-31/parallel-branch-problem",[398,399,400,401],"git","claude-code","workflow","best-practices","LJG5r0EUPOZwXdlukrUsQ6cA7eRw7lVO8wbkbV4H3Lw",[],[405,409,413,417,421],{"title":406,"path":407,"publishedAt":408},"Boris流 Claude Code 活用術 13選","/boris-claude-code-workflow","2026-01-03T00:00:00.000Z",{"title":410,"path":411,"publishedAt":412},"tool-call-malformed と一日戦って、予防策を /make-diary に焼き込んだ","/tool-call-malformed-subagent-workflow","2026-05-31T00:00:00.000Z",{"title":414,"path":415,"publishedAt":416},"投資判断教科書の未コミット 3 系統を朝に発見、実機で確認しながら分割コミットで片付けた話","/investment-textbook-pending-commits","2026-05-17T00:00:00.000Z",{"title":418,"path":419,"publishedAt":420},"Claude Codeの/worktree機能とプロジェクト深掘り調査 - 並行開発とresearch.mdの実践","/claude-code-worktree-workflow-2026-02-23","2026-02-23T00:00:00.000Z",{"title":422,"path":423,"publishedAt":424},"私のClaude Codeの使い方","/claude-code-workflow-ja","2026-02-21T00:00:00.000Z","https://log.eurekapu.com/og/blog/parallel-branch-problem.png?v=2025-12-31T00%3A00%3A00.000Z&title=%E4%B8%A6%E5%88%97%E3%83%96%E3%83%A9%E3%83%B3%E3%83%81%E5%95%8F%E9%A1%8C%3A%20%E5%90%8C%E3%81%98%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%B8%E3%81%AE%E8%A4%87%E6%95%B0PR%E3%81%8C%E3%82%B3%E3%83%B3%E3%83%95%E3%83%AA%E3%82%AF%E3%83%88%E3%81%99%E3%82%8B%E7%90%86%E7%94%B1%E3%81%A8%E5%AF%BE%E7%AD%96&author=Kei%20Komatsu&sig=ce8c7fa4b39f1138",1785654956693]