10 분 소요

📦 병렬 Claude 세션 작업 안전하게 합치기 4부작 — 같은 프로젝트에서 Claude Code 세션을 여러 개 병렬로 굴릴 때 코드가 서로 덮어써지는 문제를, worktree 로 세션마다 폴더·브랜치를 격리하고(1편), 그 브랜치를 PR·CI·리뷰 관문에 태워 통합하고(2편), 여러 PR 의 충돌을 통합 담당 세션이 자동으로 감지·정리하고(3편), 끝으로 git 을 전혀 몰라도 Claude 에게 이 전 과정을 통째로 맡기는 법(4편)까지 이어집니다. 전체 4편.
  1. 여러 Claude 세션이 서로 덮어쓸 때 — git worktree 로 격리하기
  2. worktree 브랜치를 PR 로 묶고 자동 리뷰까지 통합하기
  3. 여러 PR 의 충돌을 자동으로 감지하고 정리하기 — 통합 오케스트레이션
  4. git 을 몰라도 괜찮다 — Claude 에게 병렬 작업과 통합을 통째로 맡기기지금 글

Summary

여기까지 세 편은 솔직히 명령어가 많았어요. git worktree add, gh pr create, git rebase --continue… git 에 익숙한 분들껜 익숙했겠지만, “나는 git 을 잘 모르는데 그럼 이걸 못 하나?” 싶었다면 이번 편이 바로 그 답이에요.

결론부터 말하면 git 을 몰라도 다 할 수 있어요. 앞 세 편에서 손으로 친 명령들은 전부 Claude 에게 자연어로 부탁하면 되거든요. “이 두 작업 서로 안 부딪히게 따로 진행해줘”, “다 되면 검토용으로 올려줘”, “충돌 없으면 합쳐줘” — 이렇게요. Claude 가 내부적으로 worktree 를 만들고 PR 을 올리고 충돌을 정리합니다. 이번 편은 명령어 대신 의도만 전달하는 사용법과, 초보가 알아야 할 최소한의 개념·안전장치를 정리해볼게요.

💡 이 글에서 다루는 것

  • git 을 “몰라도 된다” 는 게 정확히 무슨 뜻인지
  • 딱 한 번만 해두면 되는 준비 (이것도 Claude 가 도와줌)
  • 명령어 대신 쓰는 자연어 지시 레시피
  • git 명령 말고 알아야 할 멘탈 모델 3가지
  • 안전하게 맡기는 습관 (되돌리기·확인받기)
  • 막혔을 때 git 용어 없이 복구하는 법



1. “git 을 몰라도 된다” 는 게 무슨 뜻

오해부터 풀게요. git 을 모른다고 병렬 작업을 포기할 필요가 없다는 거지, 개념까지 몰라도 된다는 건 아니에요. 명령어(문법)는 Claude 에게 맡기고, 사용자는 의도(무엇을 원하는지) 만 알면 됩니다. 운전할 때 엔진 구조를 몰라도 “여기서 좌회전” 은 알아야 하는 것처럼요.

앞 세 편을 이 관점으로 다시 보면 이래요.

앞 편에서 손으로 친 것 4편에서는 이렇게 말하면 됨
git worktree add ../x -b feature-x “이 작업들 서로 안 섞이게 따로따로 진행해줘”
gh pr create ... “작업 끝났으면 검토용으로 올려줘”
git merge / gh pr merge “문제 없으면 합쳐줘”
git rebase 로 충돌 정리 “충돌났으면 정리해서 다시 올려줘”
git reset / 되돌리기 “방금 바꾼 거 되돌려줘”

즉 명령어를 외우는 대신 “무엇을 원하는지” 를 또렷하게 말하는 능력으로 대체되는 거예요. 그게 이번 편에서 배울 전부입니다.



2. 딱 한 번만 해두면 되는 준비

자연어로 맡기려면 Claude 가 실제로 git·gh 를 실행할 수 있는 환경이 한 번은 갖춰져 있어야 해요. 근데 이 준비조차 Claude 에게 도와달라고 하면 됩니다. 처음 한 번만이에요.

  • Claude Code 설치·로그인 — 터미널에서 쓰는 버전. 설치는 공식 안내를 따르거나 Claude 에게 “설치 도와줘” 하면 돼요.
  • GitHub 연결(gh 로그인) — PR 을 올리려면 GitHub 계정 연결이 한 번 필요해요. Claude 에게 “GitHub 에 연결하고 싶어” 라고 하면 gh auth login 절차를 안내해줍니다. 브라우저로 클릭 몇 번이면 끝이에요.
  • 작업 폴더 열기 — 작업할 프로젝트 폴더에서 Claude 를 실행하면 준비 끝.

이 세 개만 한 번 해두면, 그다음부터는 계속 자연어로만 지시하면 돼요.

💡 뭔가 명령어를 쳐야 하는 순간이 오면, 그것도 Claude 에게 “이거 어떻게 해?” 라고 물어보면 됩니다. 앞 세 편의 모든 명령은 사실 Claude 가 대신 쳐줄 수 있는 것들이에요.



3. 자연어 지시 레시피

실제로 어떻게 말하면 되는지 상황별로 정리했어요. 명령어를 몰라도, 이 문장들만 알면 앞 세 편의 워크플로우가 그대로 돌아갑니다.

작업을 갈라서 시작할 때 (1편 = 격리)

“로그인 기능이랑 API 정리, 두 작업을 서로 안 부딪히게 따로 진행하고 싶어. 각각 독립된 작업 공간으로 나눠서 시작해줘.”

Claude 가 worktree 로 폴더·브랜치를 갈라줘요. 사용자는 “따로” 라는 의도만 전달하면 됩니다.

작업을 검토용으로 올릴 때 (2편 = PR)

“이 작업 다 됐어. 바로 합치지 말고 검토할 수 있게 올려줘. 테스트도 돌아가게 해줘.”

Claude 가 브랜치를 push 하고 PR 을 만들어요. “바로 합치지 말고 검토” 가 곧 PR 이에요.

합칠 때 (3편 = 통합)

“올린 것들 중에 문제 없는 것부터 합쳐줘. 서로 충돌나는 게 있으면 정리하고, 애매하면 나한테 물어봐.”

Claude 가 mergeable 을 확인하고 되는 것부터 머지, 충돌은 정리하거나 되물어봐요.

되돌리고 싶을 때 (안전장치)

“방금 합친 거 문제 있는 것 같아. 합치기 전으로 되돌려줘.”

git 용어(reset, revert) 몰라도 “되돌려줘” 면 충분해요.

✅ 팁: 지시는 “무엇을” + “어떤 조건이면” 으로 말하면 정확해져요. “합쳐줘” 보다 “문제 없으면 합쳐줘, 충돌나면 물어봐” 가 훨씬 안전합니다. 조건을 같이 주는 습관이 사고를 막아요.

번외 — 격리는 아예 명령어 없이, --worktree 한 단어로

1편에서 세션을 갈라둘 때 git worktree add 를 손으로 쳤는데, 사실 그것조차 필요 없어요. Claude Code 를 띄울 때 --worktree 플래그 하나만 붙이면, 세션이 자기 전용 작업 공간(worktree)을 알아서 만들고 그 안에서 시작합니다.

# 탭마다 이렇게 띄우면 각자 격리된 공간에서 시작
claude --worktree auth
claude --worktree api
claude --worktree docs

--worktree <이름> (짧게 -w) 이 워크트리 폴더와 브랜치를 자동으로 만들어줘요. git 명령을 한 줄도 몰라도, 그냥 세션을 “따로 띄우는” 스위치 라고 생각하면 됩니다. 이러면 1편의 격리가 터미널 한 단어로 끝나요.

같은 폴더에서 시작해도 각자 격리된다 — 예시로 따라가기

여기가 핵심이라 예시로 천천히 볼게요. 당신은 지금 프로젝트 폴더 하나(~/Projects/myapp)에 있고, 터미널 탭을 세 개 열었어요. 셋 다 이 같은 폴더에서 시작합니다. 1편에서는 바로 이게 사고의 원인이었죠(같은 폴더 = 덮어쓰기). 그런데 --worktree 를 붙이면, 같은 폴더에서 띄워도 각 세션이 스스로 자기 작업 공간으로 옮겨가요.

# 세 탭 모두 같은 폴더에서 시작 — 미리 cd 하거나 폴더를 나눌 필요가 없어요
cd ~/Projects/myapp

# 탭1
claude --worktree auth
# 탭2 (똑같이 이 폴더에서)
claude --worktree api
# 탭3 (똑같이 이 폴더에서)
claude --worktree docs

겉보기엔 셋 다 같은 폴더에서 띄웠지만, 실제로 각 세션은 자기만의 워크트리 안에 들어가 있어요. 디스크에서는 이렇게 갈라집니다.

~/Projects/myapp/                    ← 당신이 서 있는 원래 폴더 (main)
└── .claude/worktrees/
    ├── auth/   ← 탭1 세션이 진짜로 작업하는 곳 (worktree-auth 브랜치)
    ├── api/    ← 탭2 세션 (worktree-api 브랜치)
    └── docs/   ← 탭3 세션 (worktree-docs 브랜치)

그래서 탭1이 config.py 를 고치면 그건 auth/ 안의 config.py 이고, 탭2가 만지는 config.pyapi/ 안의 것이라 서로 완전히 다른 파일이에요. 같은 폴더에서 출발했는데 물리적으로는 갈라진 거죠. 1장에서 봤던 “마지막에 저장한 게 이긴다” 식 덮어쓰기가 원천적으로 안 생깁니다.

지금 어떤 작업 공간들이 열려 있는지 궁금하면, 원래 폴더에서 확인할 수 있어요. git 명령이 낯설면 Claude 에게 “지금 열려 있는 작업 공간들 목록 보여줘” 라고 해도 됩니다.

git worktree list
/home/me/Projects/myapp                          [main]
/home/me/Projects/myapp/.claude/worktrees/auth   [worktree-auth]
/home/me/Projects/myapp/.claude/worktrees/api    [worktree-api]
/home/me/Projects/myapp/.claude/worktrees/docs   [worktree-docs]

합칠 때는 앞 편들 그대로예요. 원래 폴더(main)로 돌아가 각 브랜치를 합치거나 PR 로 올리면 됩니다. 자연어로는 이렇게요.

“auth 작업 다 됐어. 원래 자리(main)에 합쳐줘. 문제 없으면.”

“이제 auth 작업 공간은 정리(삭제)해줘.”

정리(삭제)까지 부탁하면 .claude/worktrees/auth 워크트리를 깔끔하게 치워줘요. 즉 “같은 폴더에서 세 탭 → 각자 --worktree → 다 되면 원래 자리에 합치고 정리” 가 한 사이클입니다. 처음부터 끝까지 폴더를 손으로 나눌 일이 없어요.

한 가지 헷갈리기 쉬운 게 있어요. 세션에 이름을 붙이는 --name(-n) 은 격리가 아니라 이름표예요. 이름만 다르게 주고 같은 폴더에서 돌리면 작업 공간은 그대로 공유돼서 덮어쓰기가 납니다. 격리는 --worktree, 이름표는 --name — 헷갈리면 안 돼요. 둘을 같이 claude --worktree auth --name auth 로 쓰면 격리도 되고 보기도 좋습니다.

💡 딱 하나만 기억하세요. 이 플래그는 세션을 띄울 때마다 붙여줘야 해요. “여러 개를 자동으로 각자 공간에” 몰아주는 전역 설정은 (CLI 에는) 없어서, 탭마다 --worktree 이름 을 붙이는 게 규칙이에요. 참고로 데스크톱 앱은 새 세션마다 이 격리를 자동으로 해줍니다.



4. git 명령 말고, 알아야 할 멘탈 모델 3가지

명령어는 몰라도 되지만, 이 세 가지 개념은 알아야 지시가 또렷해져요. 딱 세 개예요.

① 작업을 “갈라둘” 수 있다. 여러 작업을 동시에 하면 서로 밟는다는 것, 그래서 따로 떼어놓고 하다가 나중에 합친다는 그림. (1편의 worktree 가 이걸 해줌.) → 그래서 “따로 진행해줘” 라고 말할 수 있어요.

② 합치기 전에 “검토” 단계를 둘 수 있다. 만든 걸 바로 본체에 넣지 않고, 한 번 확인하는 관문을 거친다는 것. (2편의 PR·CI 가 이것.) → 그래서 “바로 합치지 말고 올려줘” 라고 말할 수 있어요.

③ 거의 모든 건 “되돌릴 수 있다”. git 은 기록을 남기기 때문에, 웬만한 실수는 이전 상태로 돌아갈 수 있어요. 이걸 알면 겁내지 않고 맡길 수 있습니다. → 그래서 “되돌려줘” 가 통해요.

이 세 개가 사실상 앞 세 편의 요약이에요. 갈라두기 · 검토하고 합치기 · 되돌리기 — 명령어가 아니라 이 그림만 머리에 있으면 됩니다.

💡 특히 ③번이 초보에게 제일 중요해요. “잘못 건드리면 다 날아가는 거 아냐?” 하는 두려움이 위임을 막는데, 대부분 되돌릴 수 있다는 걸 알면 마음 편히 시켜볼 수 있어요.



5. 안전하게 맡기는 습관

git 을 모를수록 오히려 안전장치를 습관으로 두는 게 중요해요. 몇 가지만 몸에 배게 하면 큰 사고는 안 납니다.

  • 합치기 전에 “뭐가 바뀌는지 말로 설명해줘” 라고 물어보기. Claude 가 변경 요약을 사람 말로 정리해줘요. 이해가 안 되면 합치지 않으면 됩니다.
  • 중요한 지점마다 “여기까지 저장(기록)해둬” 라고 하기. 이게 커밋이에요. 자주 저장해두면 되돌릴 지점이 촘촘해져요.
  • 위험한 작업은 확인받게. Claude Code 에는 실행 전 사용자에게 물어보는 권한 설정이 있어요. 잘 모를 때는 “실행 전에 물어봐줘” 모드로 두면, 뭔가 지워지거나 덮어써지기 전에 한 번 멈춰줍니다.
  • “강제로 덮어쓰는” 작업은 특히 조심. 앞 편들에서 -f(강제) 를 조심하라고 반복한 이유예요. 초보라면 아예 “강제로 덮어쓰는 건 하지 말고, 필요하면 나한테 먼저 알려줘” 라고 못박아두면 좋아요.

🚨 딱 하나만 기억하면 “애매하면 물어봐줘” 예요. 이 한마디를 지시에 습관처럼 붙이면, Claude 가 확신 없는 상황에서 임의로 밀어붙이지 않고 멈춰서 확인합니다. git 을 모를수록 이 안전선이 든든해요.



6. 막혔을 때 — git 용어 없이 복구하기

뭔가 꼬인 것 같을 때, git 명령을 몰라도 이렇게 말하면 Claude 가 상황을 파악하고 풀어줘요.

이런 느낌일 때 이렇게 말하면 됨
지금 뭐가 어떻게 된 건지 모르겠다 지금 상태를 사람 말로 설명해줘. 뭐가 바뀌었고 뭐가 안 합쳐졌어?”
방금 한 게 잘못된 것 같다 방금 것 되돌려줘. 그 전 상태로.”
뭔가 충돌났다고 뜬다 충돌난 부분 보여주고, 각각 뭘 하려던 건지 설명해줘”
다 엉켜서 처음부터 하고 싶다 마지막으로 잘 됐던 지점으로 돌려줘”
실수로 지운 것 같다 “혹시 방금 지워진 거 복구 가능해?”

핵심은 증상을 그냥 사람 말로 설명하는 거예요. “HEAD 가 detached 됐어” 같은 걸 알 필요 없어요. “뭔가 이상해, 방금 전으로 돌려줘” 면 Claude 가 알아서 진단하고 복구를 시도합니다.

💡 복구가 잘 되는 이유가 3가지 멘탈 모델의 ③번(되돌릴 수 있다)이에요. 기록이 남아있으니, 상황만 정확히 말해주면 대부분 되살릴 수 있어요.



7. 한 걸음 더 — 같이 알아두면 좋은 Claude Code 기능

지금까지가 이 시리즈의 본줄기예요. 여기에 더해, 익숙해지면 이 흐름을 훨씬 편하게 해주는 Claude Code 기능 몇 개를 소개할게요. 지금 다 쓸 필요는 없어요. “이런 게 있었지” 하고 기억해뒀다가 필요할 때 꺼내 쓰면 됩니다. 각 기능이 시리즈의 어느 편과 이어지는지도 같이 적어뒀어요.

기능 이렇게 쓰면 관련 편
-w, --worktree
(+ --tmux)
세션을 자기 워크트리에 자동 격리.
--tmux 를 같이 주면 여러 세션을
한 화면 패널로
1편
--bg +
claude agents
세션을 백그라운드로 돌려 여러 작업을
안 지켜봐도 병렬 진행. claude agents
그 세션들을 보는 대시보드
3편
--from-pr
<번호/URL>
Claude 가 만든 PR 에 연결된 세션으로
바로 복귀
2편
-c, --continue
-r, --resume
끊긴 세션 이어가기.
-c 는 이 폴더 최근 것,
-r 은 피커로 골라서
전체 편
--permission-mode 실행 전 확인 강도를 모드로 고정
(아래 팁 참고)
이 글 아래
/code-review ultra 브랜치·PR 을 클라우드 멀티 에이전트로
심층 리뷰 (직접 실행·과금)
2편

특히 권한 모드(--permission-mode) 는 5절의 “실행 전 물어봐줘” 습관을 아예 세션 기본값으로 굳혀줘서, git 초보에게 제일 든든한 안전장치예요. 모드별로 이렇게 갈려요.

  • manual(=default) — 매 작업 전에 물어봄. 파일을 고치거나 명령을 실행하기 전에 매번 확인받아요. 초보에게 이걸 추천합니다.
  • acceptEdits — 파일 수정은 자동 승인, 나머지는 확인. 편집이 잦을 때 한 단계 덜 귀찮은 모드예요.
  • plan — 읽기만, 고치지 않음. 계획만 세우고 실제 변경은 안 해요. “일단 뭘 할 건지 먼저 보고 싶다” 싶을 때.
  • auto — 물어보는 대신 안전성 분류기가 판단. 매번 묻지 않고, 백그라운드 분류기가 안전한 작업(로컬 수정·읽기·일상적 push)은 자동 승인하고 위험한 것(프로덕션 배포·강제 push·대량 삭제)은 자동 차단해요. 계정/플랜 요건이 있고, 명시적 확인 규칙은 auto 에서도 물어봅니다.
  • dontAsk / bypassPermissions — 확인을 건너뜀. 미리 허용한 것만 자동 실행하거나(CI용) 아예 다 건너뛰는(격리된 VM 전용) 모드예요. 익숙해지기 전엔 손대지 마세요.

✅ 헷갈리기 쉬운 것 하나. 위 auto 모드와, 터미널의 claude auto-mode 명령은 다른 겁니다. auto권한 모드의 한 값이고, claude auto-mode 는 그 auto 모드가 쓰는 판단 규칙을 들여다보고 손보는 도구(config/critique/defaults)예요. 즉 --permission-mode 로 모드를 고르고, auto-mode 명령으로 그 모드의 규칙을 다듬는 관계입니다.

💡 하나만 고르라면 초보는 manual(매번 확인) 이에요. 큰 변경을 앞뒀을 땐 plan(읽기 전용)으로 계획부터 받아보고요. “확인을 건너뛰는” 모드는 되돌리기 어려운 사고로 이어질 수 있으니, 앞 편들에서 강조한 “애매하면 물어봐줘” 와 같은 결로 생각하면 됩니다.

한 가지 참고로, ultrareview(=/code-review ultra) 처럼 직접 실행하고 비용이 드는 기능은 사용자가 의도적으로 돌리는 거예요. 2편의 자동 리뷰 관문을 한층 더 깐깐하게 만들고 싶을 때 꺼내 쓰면 좋습니다.



8. 시리즈 마무리 — 4편 전체 요약

4부작을 한 장으로 정리하면 이래요.

문제 해법 핵심 한 줄
1편 한 폴더 동시 작업이 코드를 덮어씀 worktree 로 세션마다 폴더·브랜치 격리 논리적 분리를 물리적 분리로
2편 검증 없이 합쳐짐 PR·CI·리뷰 관문 통과 후 통합 격리로 안 부딪히게, 관문으로 검증하고
3편 PR 끼리 충돌 통합 세션이 감지·정리·순차 머지 되는 것부터, 애매하면 멈추고
4편 git 을 모름 자연어로 Claude 에게 위임 명령어 대신 의도를

전체를 관통하는 한 문장은 이거예요. “세션을 물리적으로 갈라두고(격리), 합치기 전에 관문을 두고(검증), 애매하면 멈춰서 사람에게 묻는다.” 이 원칙만 있으면 git 을 잘 알든 모르든, Claude 세션을 몇 개를 병렬로 굴리든 코드가 사라지거나 검증 안 된 채 섞이는 일은 안 생겨요.

git 이 어렵게 느껴져서 병렬 작업을 미뤄왔다면, 4편의 자연어 지시부터 시작해보세요. 개념 세 개(갈라두기·검토하고 합치기·되돌리기)만 쥐고 있으면, 나머지 명령어는 Claude 가 다 대신 쳐줍니다.



긴 시리즈 읽어주셔서 고맙습니다.
병렬로 여러 세션을 굴리면서도 코드가 안 사라지는, 마음 편한 작업 환경을 이 4편이 만들어드렸으면 좋겠어요.


← 이전 글: (3/4) 여러 PR 의 충돌을 자동으로 감지하고 정리하기 — 통합 오케스트레이션