본문으로 건너뛰기

LLM 기반 Git Diff 리뷰를 위한 Zsh 헬퍼 도구

Git diff 범위를 Claude Code나 GitHub Copilot CLI로 직접 파이프하여 코드 리뷰, 커밋 메시지 생성, 보안 분석 등을 자동화하는 Zsh 함수와 워크플로를 소개한다.

섹션별 상세

01
claudiff와 copdiff는 Git diff 결과를 LLM CLI 도구에 직접 연결하는 Zsh 함수이다. claudiff는 Anthropic의 Claude Code를, copdiff는 GitHub Copilot CLI를 기반으로 작동하며, 사용자가 지정한 diff 범위와 프롬프트를 조합하여 분석을 수행한다.
02
claudiff 함수는 mktemp를 사용해 임시 패치 파일을 생성하고 git diff 결과를 저장한 뒤, 이를 Claude CLI의 표준 입력으로 전달한다. 이때 --tools "" 옵션으로 도구 사용을 비활성화하고 --no-chrome, --disable-slash-commands 플래그를 추가하여 모델이 오직 diff 텍스트 분석에만 집중하도록 제어한다.
bash
claudiff() {
  local range="$1"; shift
  local prompt="$*"
  if [[ -z "$range" || -z "$prompt" ]]; then
    print -u2 'Usage: claudiff "<range>" "<prompt>"'
    return 2
  fi
  local tmpfile
  tmpfile="$(mktemp -t claudiff.XXXXXX.patch)" || return 1
  {
    git diff "$range" > "$tmpfile" || return 1
    cat "$tmpfile" | claude -p "$prompt" \
      --tools "" \
      --no-chrome \
      --model opus \
      --disable-slash-commands
  } always {
    rm -f "$tmpfile"
  }
}

Git diff 결과를 Claude Code CLI로 파이프하여 분석하는 Zsh 함수

03
copdiff 함수는 GitHub Copilot CLI를 활용하며 --deny-tool 옵션을 통해 shell, url, write, memory 등 에이전트의 권한을 명시적으로 차단한다. 이는 에이전트가 불필요하게 파일 시스템을 탐색하거나 예측 불가능한 동작을 수행하여 속도가 느려지는 것을 방지하고 보안을 강화하는 효과가 있다.
bash
copdiff() {
  local range="$1"; shift
  local prompt="$*"
  if [[ -z "$range" || -z "$prompt" ]]; then
    print -u2 'Usage: copdiff "<range>" "<prompt>"'
    return 2
  fi
  local tmpfile
  tmpfile="$(mktemp -t copdiff.XXXXXX.patch)" || return 1
  {
    git diff "$range" > "$tmpfile" || return 1
    copilot \
      --model gpt-5.3-codex \
      --disable-builtin-mcps \
      --deny-tool shell \
      --deny-tool url \
      --deny-tool write \
      --deny-tool memory \
      -sp "${prompt} @${tmpfile}"
  } always {
    rm -f "$tmpfile"
  }
}

Git diff 결과를 GitHub Copilot CLI로 파이프하여 분석하는 Zsh 함수

04
마지막 커밋(HEAD^..HEAD), 커밋되지 않은 작업 트리(HEAD), 특정 태그 이후의 변경 사항($(git describe --tags --abbrev=0)..HEAD) 등 다양한 Git diff 표현식을 지원한다. 이를 통해 코드 리뷰뿐만 아니라 보안 취약점 식별, 아키텍처 영향도 평가, 릴리스 노트 생성 등 폭넓은 개발 워크플로에 LLM을 통합할 수 있다.
bash
# 마지막 커밋 리뷰
claudiff "HEAD^..HEAD" "code review"

# 마지막 3개 커밋에 대한 코드 정리 제안
claudiff "HEAD~3..HEAD" "suggest code cleanups"

# 스테이징된 변경 사항 리뷰
claudiff --staged "review as if you were Linus Torvalds"

등록된 claudiff 함수를 활용한 다양한 Git 리뷰 사례

용어 해설

깃 디프(Git Diff)
두 데이터셋 또는 커밋 사이의 차이점을 계산하고 표시하는 유틸리티이다. 코드의 추가, 삭제, 수정 사항을 텍스트 형식으로 보여주며 LLM이 변경 맥락을 파악하는 핵심 입력 데이터로 활용된다.
헤드 포인터(HEAD Pointer)
Git에서 현재 작업 중인 브랜치의 최신 커밋을 가리키는 참조이다. diff 범위를 지정할 때 기준점으로 사용되며, HEAD^는 바로 이전 커밋을 의미하는 등 상대적인 위치 지정에 필수적이다.
에이전트 모드(Agentic Mode)
LLM이 스스로 도구를 선택하고 실행하며 목표를 달성하려는 작동 방식이다. 본문에서는 속도 향상과 제어력 확보를 위해 이 기능을 의도적으로 제한하고 텍스트 분석에만 집중하게 만드는 기법을 다룬다.
거킨 기준(Gherkin Criteria)
비즈니스 요구사항을 Given-When-Then 구조로 기술하는 도메인 특화 언어이다. LLM을 통해 코드 변경 사항으로부터 이러한 인수 테스트 기준을 자동으로 추출하여 문서화 품질을 높일 수 있다.
Zsh 설정 파일(zshrc)
Zsh 쉘이 시작될 때 실행되는 설정 스크립트 파일이다. 사용자 정의 함수나 별칭(alias)을 등록하여 복잡한 CLI 명령어를 단축키처럼 간편하게 실행할 수 있도록 돕는다.

기술

  • Claude Code
  • GitHub Copilot CLI
  • Zsh
  • Git

활용 사례

  • 자동 코드 리뷰
  • Git 커밋 메시지 생성
  • PR 설명 작성
  • 보안 취약점 분석

언급된 리소스

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 03. 06.수집 2026. 03. 06.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.