From 1b1f758c56da3819a877035defb8f9289f08acaa Mon Sep 17 00:00:00 2001 From: nrslib <38722970+nrslib@users.noreply.github.com> Date: Wed, 4 Mar 2026 00:25:12 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20cc-resolve=20=E3=81=8C=E3=83=9E=E3=83=BC?= =?UTF-8?q?=E3=82=B8=E3=82=B3=E3=83=9F=E3=83=83=E3=83=88=E3=82=92=E4=BD=9C?= =?UTF-8?q?=E3=82=8B=E3=82=88=E3=81=86=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --no-commit --no-ff を使ってマージ状態を常に保持し、 最終的な git commit が必ずマージコミット(親2つ)になるようにする。 また MERGE_HEAD チェックと git reset 禁止を追加し、 Claude がマージ状態をリセットしてしまうケースを防ぐ。 --- .github/workflows/cc-resolve.yml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cc-resolve.yml b/.github/workflows/cc-resolve.yml index 9d9c19a..b3eae43 100644 --- a/.github/workflows/cc-resolve.yml +++ b/.github/workflows/cc-resolve.yml @@ -57,7 +57,9 @@ jobs: id: merge run: | git fetch origin main - if git merge origin/main --no-edit 2>/dev/null; then + # --no-commit --no-ff: コンフリクトの有無にかかわらず常にマージ状態を保持する + # これにより最後の git commit が必ずマージコミット(親2つ)を作る + if git merge --no-commit --no-ff origin/main 2>/dev/null; then echo "conflicts=false" >> "$GITHUB_OUTPUT" else echo "conflicts=true" >> "$GITHUB_OUTPUT" @@ -224,6 +226,8 @@ jobs: - 「とりあえず片方」で全ファイルを一括解決しない - コンフリクトマーカー (`<<<<<<<`) が残ったままにしない - `git merge --abort` を実行しない + - `git reset` を実行しない(MERGE_HEAD が消えてマージコミットが作れなくなる) + - `.git/MERGE_HEAD` を保持したまま作業すること PROMPT )" --verbose env: @@ -233,7 +237,10 @@ jobs: - name: Commit and push run: | git add -A - if ! git diff --cached --quiet; then + # MERGE_HEAD があればマージコミット、なければ通常コミット + if [ -f .git/MERGE_HEAD ]; then + git commit -m "merge: integrate main into PR branch" + elif ! git diff --cached --quiet; then git commit -m "fix: resolve merge conflicts" fi AHEAD=$(git rev-list --count origin/${{ steps.pr.outputs.branch }}..HEAD 2>/dev/null || echo "0")