본문으로 건너뛰기

© 2026 Molayo

HN요약2026. 06. 18. 12:36

Show HN: Git Auto Commit (GAC) – LLM 기반 Git 커밋 명령줄 도구

요약

LLM을 활용하여 코드 변경 사항의 의도와 이유를 분석하고, 문맥에 맞는 커밋 메시지를 자동으로 생성해 주는 CLI 도구인 Git Auto Commit(GAC)을 소개합니다. Conventional Commit 형식을 지원하며 다양한 LLM 제공자와 연동하여 지능적인 커밋 관리를 돕습니다.

핵심 포인트

  • LLM 기반으로 코드 변경의 '이유'를 분석하여 문맥에 맞는 메시지 생성
  • 리팩토링, 버그 수정 등 변경 유형을 인식하는 의미론적 인식 기능
  • 관련된 변경 사항을 논리적 단위로 묶어주는 지능형 커밋 그룹화 지원
  • Anthropic, OpenAI, Gemini 등 25개 이상의 다양한 LLM 모델 연동 가능
  • 50/72 규칙 및 DCO/Signoff 등 표준 Git 관례 준수 옵션 제공

English | 简体中文 | 繁體中文 | 日本語 | 한국어 | हिन्दी | Tiếng Việt | Français | Русский | Español | Português | Norsk | Svenska | Deutsch | Nederlands | Italiano

당신의 코드를 이해하는 LLM 기반 커밋 메시지!

커밋을 자동화하세요! git commit -m "..."

uvx gac으로

대체하여 대규모 언어 모델 (Large Language Models, LLM)이 생성하는 문맥에 맞고 잘 정돈된 커밋 메시지를 사용하세요!

변경 사항의 **이유 (why)**를 설명하는 지능적이고 문맥적인 메시지:

uvx gac init # 제공자(provider), 모델(model), 언어(language)를 설정합니다
uvx gac # LLM을 사용하여 생성 및 커밋합니다

그게 전부입니다! 생성된 메시지를 검토하고 y로 확인하세요.

AnthropicAzure OpenAICerebrasChatGPT (OAuth)Chutes.aiClaude Code (OAuth)Crof.aiDeepInfraDeepSeekFireworksGeminiGitHub Copilot (OAuth)GroqKimi for CodingLilacLM StudioMiniMax.ioMistral AIMoonshot AINeuralwattOllamaOllama CloudOpenAIOpenCode GoOpenRouterPlexus GatewayQwen Cloud (CN & INTL)ReplicateStreamlake/VanchinSynthetic.newTogether AIWafer.aiZ.AI (API & Coding Plans)Custom Endpoints (Anthropic/OpenAI)

의도 파악 (Understands intent): 단순히 무엇이 바뀌었는지가 아니라, 변경 사항 뒤에 숨겨진 "이유"를 이해하기 위해 코드 구조, 로직 및 패턴을 분석합니다.
의미론적 인식 (Semantic awareness): 리팩토링 (refactoring), 버그 수정 (bug fixes), 기능 추가 (features), 중대한 변경 사항 (breaking changes)을 인식하여 문맥에 적합한 메시지를 생성합니다.
지능형 필터링 (Intelligent filtering): 생성된 파일, 의존성 (dependencies) 및 아티팩트 (artifacts)를 무시하면서 의미 있는 변경 사항을 우선시합니다.
지능형 커밋 그룹화 (Intelligent commit grouping): --group 옵션을 사용하여 관련된 변경 사항을 여러 개의 논리적인 커밋으로 자동 그룹화합니다.

한 줄 요약(-o 플래그): Conventional Commit 형식을 따르는 단일 행 커밋 메시지 생성
표준(기본값): 구현 세부 사항을 설명하는 불렛 포인트가 포함된 요약
상세( -v 플래g): 동기(motivation), 기술적 접근 방식, 영향 분석을 포함한 포괄적인 설명
50/72 규칙(--50-72 플래그): git log 및 GitHub UI에서 최적의 가독성을 위해 클래식한 커밋 메시지 형식을 강제함
DCO/Signoff(--signoff 플래그): Developer Certificate of Origin 준수를 위해 Signed-off-by 라인을 추가 (Cherry Studio, Linux 커널 및 기타 프로젝트에서 요구됨)

25개 이상의 언어: 영어, 중국어, 일본어, 한국어, 스페인어, 프랑스어, 독일어 및 18개 이상의 언어로 커밋 메시지 생성
유연한 번역: 도구 호환성을 위해 Conventional Commit 접두사를 영어로 유지하거나, 완전히 번역하도록 선택 가능
다양한 워크플로: uvx gac language로 기본 언어를 설정하거나, -l <language> 플래그를 사용하여 일회성으로 변경 가능
네이티브 스크립트 지원: CJK(한중일), 키릴 문자, 태국어 등을 포함한 비라틴 스크립트 완벽 지원

대화형 피드백: r을 입력하여 다시 생성(reroll), e를 입력하여 수정(기본적으로 인플레이스 TUI 사용, 또는 $GAC_EDITOR가 설정된 경우 해당 에디터 사용), 또는 make it shorterfocus on the bug fix와 같이 피드백을 직접 입력
대화형 질문: --interactive (-i)를 사용하여 변경 사항에 대한 타겟 질문에 답변함으로써 더 맥락에 맞는 커밋 메시지 생성
원커맨드 워크플로: uvx gac -ayp (모두 스테이징, 자동 승인, 푸시)와 같은 플래그를 통해 완전한 워크플로 수행
Git 통합: pre-commit 및 lefthook 훅을 준수하며, 비용이 많이 드는 LLM 작업이 수행되기 전에 해당 훅들을 실행
MCP 서버: uvx gac serve를 실행하여 Model Context Protocol을 통해 AI 에이전트에게 커밋 도구를 노출

uvx gac stats # 개요: 총 gac 횟수, 연속 기록(streaks), 일간/주간 피크, 주요 프로젝트 및 모델
uvx gac stats models # 모델별 상세 내역: gac 횟수, 토큰(tokens), 지연 시간(latency), 속도, 커밋당 지연 시간 차트
uvx gac stats projects # 프로젝트별 상세 내역: gac 횟수, 커밋 횟수, 토큰, 모든 리포지토리의 gac당 평균 파일 수
...

gac 기록 추적: gac으로 수행한 커밋 횟수, 현재 연속 기록, 일간/주간 활동 피크, 주요 프로젝트 확인
토큰 추적: 일간, 주간, 프로젝트 및 모델별 총 프롬프트(prompt) + 완료(completion) 토큰 — 토큰 사용량에 대한 하이스코어 트로피 제공
주요 모델: 가장 많이 사용하는 모델과 각 모델이 소비하는 토큰 양 확인
하이스코어 축하: 새로운 일간, 주간, 토큰 또는 연속 기록을 세우면 🏆 트로피를, 기록과 동률을 이루면 🥈 트로피를 증정
설정 중 선택 사항: uvx gac init 실행 시 통계 활성화 여부를 묻고 저장되는 항목을 정확히 설명함
언제든 거부 가능: GAC_DISABLE_STATS=true (1, yes, on 중 하나)로 설정하여 비활성화할 수 있습니다. false, 0, no로 설정하거나(또는 설정을 해제하면) 통계 기능이 유지됩니다.
개인정보 보호 우선: ~/.gac_stats.json에 로컬로 저장됩니다. 횟수, 날짜, 프로젝트 이름, 모델 이름만 포함하며, 커밋 메시지, 코드 또는 개인 데이터는 포함하지 않습니다. 텔레메트리(telemetry)는 없습니다.

자동 비밀 정보 탐지: 커밋 전 API 키, 비밀번호 및 토큰을 스캔합니다.
대화형 보호: 잠재적으로 민감한 데이터를 커밋하기 전에 명확한 해결 옵션과 함께 프롬프트를 표시합니다.
스마트 필터링: 오탐(false positives)을 줄이기 위해 예시 파일, 템플릿 파일 및 플레이스홀더(placeholder) 텍스트를 무시합니다.

# 변경 사항 스테이징(Stage)
git add .
# LLM을 사용하여 생성 및 커밋
...
명령어설명
uvx gac커밋 메시지 생성
uvx gac -y자동 승인 (검토 불필요)
uvx gac -a커밋 메시지 생성 전 모든 변경 사항을 스테이징 (Stage)
uvx gac -S스테이징할 파일을 대화형으로 선택
uvx gac -o사소한 변경 사항을 위한 한 줄 메시지
uvx gac -v동기(Motivation), 기술적 접근(Technical Approach), 영향 분석(Impact Analysis)을 포함한 상세(Verbose) 형식
uvx gac -h "hint"LLM에 컨텍스트 추가 (예: uvx gac -h "bug fix")
uvx gac -s범위(Scope) 포함 (예: feat(auth):)
uvx gac -i더 나은 컨텍스트를 위해 변경 사항에 대해 질문하기
uvx gac -g변경 사항을 여러 개의 논리적 커밋으로 그룹화
uvx gac -p커밋 및 푸시 (Push)
uvx gac statsgac 사용 통계 보기
# 커밋 통계 보기
uvx gac stats
# 모든 프로젝트에 대한 통계
...

결과가 마음에 들지 않나요? 다음과 같은 몇 가지 옵션이 있습니다:

# 단순 재시도 (피드백 없음)
r
# 커밋 메시지 편집
...

편집 기능 (e)을 사용하면 커밋 메시지를 다듬을 수 있습니다:

기본값 (인플레이스 TUI): vi/emacs 키 바인딩을 사용한 다중 행 편집 — 오타 수정, 문구 조정, 구조 재조정 가능
사용 시: 선호하는 에디터 (GAC_EDITOR 설정값, code, vim, nano 등)를 엽니다 — 찾기/바꾸기, 매크로 등을 포함한 에디터의 모든 기능을 사용할 수 있습니다.

VS Code와 같은 GUI 에디터는 자동으로 처리됩니다: gac--wait를 삽입하여 에디터 탭을 닫을 때까지 프로세스가 대기합니다. 별도의 설정이 필요하지 않습니다.

uvx gac init을 실행하여 대화형으로 제공자(Provider)를 설정하거나, 환경 변수를 설정하세요.

언어 설정을 건드리지 않고 나중에 제공자나 모델을 변경해야 하나요? 언어 프롬프트를 건너뛰는 간소화된 흐름을 위해 uvx gac model을 사용하세요.

항상 그룹화된 커밋 모드를 사용하는 GAC_ALWAYS_GROUPED, 커밋 범위를 자동 추론하는 GAC_ALWAYS_INCLUDE_SCOPE 및 기타 다양한 커스텀 설정을 포함한 모든 사용 가능한 옵션은 .gac.env.example을 참조하세요.

커밋 메시지를 다른 언어로 받고 싶으신가요? uvx gac language를 실행하세요.

Español, Français, 日本語 등을 포함한 25개 이상의 언어 중에서 선택할 수 있습니다.

커밋 메시지 스타일을 커스터마이징하고 싶으신가요? 사용자 정의 시스템 프롬프트 (Custom System Prompts) 작성에 대한 안내는 docs/CUSTOM_SYSTEM_PROMPTS.md를 참조하세요.

전체 문서 (Full documentation): docs/USAGE.md - 완전한 CLI 레퍼런스
MCP 서버 (MCP server): docs/MCP.md - AI 에이전트를 위한 MCP 서버로 GAC 사용하기
Claude Code OAuth: docs/CLAUDE_CODE.md - Claude Code 설정 및 인증
ChatGPT OAuth: docs/CHATGPT_OAUTH.md - ChatGPT OAuth 설정 및 인증
사용자 정의 프롬프트 (Custom prompts): docs/CUSTOM_SYSTEM_PROMPTS.md - 커밋 메시지 스타일 커스터마이징
사용 통계 (Usage statistics): uvx gac stats --help를 확인하거나 전체 문서를 참조하세요
문제 해결 (Troubleshooting): docs/TROUBLESHOOTING.md - 일반적인 문제 및 해결 방법
기여하기 (Contributing): docs/CONTRIBUTING.md - 개발 환경 설정 및 가이드라인

AI 자동 생성 콘텐츠

본 콘텐츠는 HN OpenAI Codex의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0