From 0def604f62f6f0c89412d16eea4ed4a9be2aa4b2 Mon Sep 17 00:00:00 2001 From: gahusb Date: Tue, 30 Jun 2026 08:34:54 +0900 Subject: [PATCH] =?UTF-8?q?docs(rules):=20main=20=EB=A8=B8=EC=A7=80=20?= =?UTF-8?q?=EC=B6=A9=EB=8F=8C=20=EC=8B=9C=20=EB=A8=B8=EC=A7=80=20=EC=A0=84?= =?UTF-8?q?=EC=B2=B4=20revert=20=EA=B8=88=EC=A7=80=20=EA=B7=9C=EC=B9=99=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit §4에 경고 추가 — 작업 브랜치에 main 머지 후 충돌나도 머지를 통째로 revert하면 타인 작업이 collateral로 유실된다. 소스 충돌만 해소하고 산출물은 재생성할 것. (2026-06-30 codex #98/#99가 #96을 날린 사고 근거.) Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_01UUvHKjrt8jqLzDeCsRRGmj --- RULES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/RULES.md b/RULES.md index 181b3d4..1a4cb02 100644 --- a/RULES.md +++ b/RULES.md @@ -66,6 +66,7 @@ grep -c "CalcPlayerAttack" RootDesk/MyDesk/SlayDeckController.codeblock - PR 제목과 본문은 한국어로 작성한다. - 산출물 재생성 커밋은 소스 변경 커밋과 분리하거나, 메시지에 "산출물 재생성"을 명시. - **PR 머지 후 브랜치 삭제**: 머지된 `feature/*`·`docs/*` 브랜치는 로컬·원격 모두 삭제한다. 삭제 전 `git merge-base --is-ancestor origin/<브랜치> origin/main`로 완전 머지 확인(종료코드 0=완전 머지 → 삭제 가능). main에 없는 커밋이 남은 브랜치와 `codex/*` 등 작업 중 브랜치는 보존한다. +- **⚠️ main 머지 충돌 시 "머지 전체 revert" 금지 (타인 작업 유실 방지)**: 작업 브랜치에 `git merge main`(또는 origin/main) 했다가 충돌·문제가 나도 **그 머지 커밋을 통째로 `git revert` 하지 말 것.** main에 먼저 들어간 타인의 작업이 collateral로 전부 사라진다. 대신 **소스 충돌만 해소**하고 산출물(codeblock 등)은 **재생성**한다. 충돌이 산출물뿐이면 `git checkout --theirs`/재생성으로 끝. (2026-06-30 사고: codex `#98/#99`가 main 머지 후 그 머지를 revert해 `#96`의 버그수정 11개를 전부 날림 → 다시 재통합해야 했다. 복구는 `git diff <내브랜치> -- <소스> | git apply --3way` 로 소스만 재적용 후 재생성하면 codex 변경과 충돌 없이 양립.) ## 5. 메이커(MSW) 연동 주의