(4/4) git 을 몰라도 괜찮다 — Claude 에게 병렬 작업과 통합을 통째로 맡기기
- 여러 Claude 세션이 서로 덮어쓸 때 — git worktree 로 격리하기
- worktree 브랜치를 PR 로 묶고 자동 리뷰까지 통합하기
- 여러 PR 의 충돌을 자동으로 감지하고 정리하기 — 통합 오케스트레이션
- 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.py 는 api/ 안의 것이라 서로 완전히 다른 파일이에요. 같은 폴더에서 출발했는데 물리적으로는 갈라진 거죠. 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편이 만들어드렸으면 좋겠어요.