18. Git/GitHub 워크플로우

🎯 이 장의 목표
  • 왜 Git이 Claude Code의 가장 중요한 안전장치인지 이해한다
  • 체크포인트와 /rewind로 작업을 되돌리는 법을 안다
  • Claude에게 커밋·PR을 맡기는 법과 주의점을 안다
  • GitHub 연동(MCP·Action·App)의 큰 그림을 안다

Git은 최고의 안전장치

1장에서 말했듯, Claude Code는 파일을 직접 수정하는 자율 도구라 강력한 만큼 위험도 있습니다. 그 위험을 가장 단순하고 확실하게 줄이는 방법이 Git 버전 관리입니다.

📌 핵심 원칙: 큰 작업 전에 체크포인트 커밋을 남기세요. 작업이 잘못돼도 깨끗한 지점으로 돌아올 수 있습니다. AI가 빠르게 많은 변경을 만드는 만큼, "언제든 되돌릴 수 있다"는 안전망이 마음 편히 맡길 수 있게 해줍니다.

flowchart LR
    A[작업 시작]:::user --> B[체크포인트 커밋]:::result
    B --> C[Claude에게 작업 위임]:::agent
    C --> D{결과 만족?}:::danger
    D -->|예| E[다시 커밋]:::result
    D -->|아니오| F[되돌리기<br/>git / rewind]:::result
    F --> C

    classDef user fill:#FFE082,stroke:#F9A825,color:#000
    classDef result fill:#A5D6A7,stroke:#43A047,color:#000
    classDef agent fill:#80DEEA,stroke:#00ACC1,color:#000
    classDef danger fill:#EF9A9A,stroke:#E53935,color:#000
💡 팁
권장 습관: 별도 브랜치에서 작업하고, 큰 작업 전 체크포인트 커밋을 남기세요. 프로덕션 서버·실제 자격증명이 있는 곳에서 완전 자율 모드를 돌리지 마세요(1장의 사고 사례를 기억하세요).

체크포인트와 /rewind

Git 커밋과 별개로, Claude Code는 편집 전 파일 스냅샷을 자동으로 떠두는 체크포인트 기능이 있습니다. /rewind로 이전 상태로 복원할 수 있습니다.

CODE
설정: "Rewind code (checkpoints)" 토글 (기본 켜짐)
복원: /rewind
끄기: 디스크 절약을 원하면 체크포인트 비활성화 가능
      (CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING 환경변수)
📌 핵심
체크포인트는 "방금 한 편집"을 빠르게 되돌리는 용도이고, Git은 "의미 있는 작업 단위"를 영구 기록하는 용도입니다. 둘은 보완 관계입니다. 체크포인트가 있어도 Git 커밋 습관은 그대로 유지하세요.

⚠️ 커뮤니티 도구 중에는 세션 파일을 읽어 더 세밀한 undo를 제공하는 것들(예: ccundo류)도 있지만, 기본 안전망은 어디까지나 Git + 체크포인트입니다.

Claude에게 커밋 맡기기

Claude는 Bash 도구로 git을 다룰 수 있어, 커밋 메시지 작성·스테이징·커밋을 맡길 수 있습니다.

CODE
> 지금까지의 변경을 의미 단위로 나눠 커밋해줘.
  커밋 메시지는 우리 컨벤션(feat/fix/chore:)을 따라줘.

Claude는 보통 변경 상태를 확인하고(git status·diff), 적절한 메시지로 커밋합니다. CLAUDE.md에 커밋 컨벤션을 적어두면 잘 따릅니다(9장).

⚠️ 되돌리기 어려운 git 작업은 신중히. Claude Code는 force-push·브랜치 삭제 같은 파괴적 작업에 대해 안전한 대안을 고려하도록 설계돼 있습니다. 그래도 다음은 권한으로 못박는 게 좋습니다:

JSON
{
  "permissions": {
    "ask":  ["Bash(git push *)"],
    "deny": ["Bash(git push --force *)", "Bash(git reset --hard *)"]
  }
}
📌 핵심
"되돌리기 어렵고, 공유 시스템에 영향을 주거나, 파괴적인" 작업은 사람 확인을 거치게 하세요(8장). 로컬·가역적 작업(파일 편집·테스트 실행)은 자유롭게 둬도 됩니다.

PR 초안 작성

Claude에게 PR 본문 작성을 맡길 수 있습니다. 7장에서 본 팁 — 계획을 PR 설명으로 — 이 여기서 빛납니다.

CODE
> 이 브랜치의 변경으로 PR을 만들어줘.
  Summary와 Test plan 섹션을 포함하고, 계획했던 내용과 실제 변경을 대조해줘.
💡 팁
큰 기능이라면 7장에서 만든 계획 문서를 그대로 PR 본문에 붙이면, 리뷰어가 "계획 vs 실제"를 한눈에 비교할 수 있습니다.

GitHub 연동의 큰 그림

Claude Code는 GitHub과 여러 방식으로 연동됩니다.

flowchart TB
    subgraph Local["로컬·대화형"]
        MCP[GitHub MCP 서버<br/>이슈·PR·코드 조회/생성]:::tool
    end
    subgraph CI["CI·자동화"]
        Action[GitHub Action<br/>PR마다 자동 리뷰·트리아지]:::tool
        App[GitHub App<br/>저장소 연동]:::tool
    end

    classDef tool fill:#90CAF9,stroke:#1E88E5,color:#000
방식용도참고
GitHub MCP 서버대화 중 이슈·PR·코드 조회/생성14장
GitHub ActionPR마다 자동 코드 리뷰·이슈 트리아지19장
GitHub App저장소 수준 연동공식 문서
⚠️ 흔한 실수
GitHub MCP로 "PR 머지" 같은 비가역 작업을 할 땐, 14장의 보안 수칙대로 사람 확인을 거치세요. 읽기 작업(조회·요약)은 자동 승인해도 비교적 안전합니다.

이 장에서 배운 것

  • Git은 Claude Code의 가장 중요한 안전장치다. 큰 작업 전 체크포인트 커밋, 별도 브랜치 작업이 기본 습관이다.
  • 체크포인트와 /rewind는 "방금 편집"을 되돌리고, Git은 "작업 단위"를 영구 기록한다 — 보완 관계.
  • Claude에게 커밋·PR을 맡길 수 있되, force-push·hard reset 등 파괴적 작업은 권한으로 못박는다.
  • GitHub 연동은 대화형(MCP)·CI(Action)·저장소(App)로 나뉘며, 비가역 작업엔 사람 확인을 둔다.

✍️ 확인 문제

  1. Claude Code를 쓸 때 Git이 "가장 중요한 안전장치"인 이유는 무엇인가요?
  2. 체크포인트(/rewind)와 Git 커밋의 역할 차이는 무엇이며, 왜 둘 다 필요한가요?
  3. git push --forcegit reset --hard 같은 작업을 안전하게 다루려면 어떻게 설정하나요?
다음 장: 19. 헤드리스 실행과 CI — 터미널 없이, 파이프라인 속에서 Claude Code 돌리기.