Git Smart Squash
커밋을 수동으로 재구성하며 시간을 낭비하지 마세요. AI가 대신 처리하게 하세요.
문제점 (The Problem)
이런 경험 있으시죠: 하나의 기능에 대해 커밋이 15개인데, 그중 절반은 'fix', 'typo' 또는 'WIP'입니다. 이제 PR 검토를 위해 이것들을 정리해야 합니다. 수동으로 squash하고 리라이팅하는 것은 지루한 작업입니다.
해결책 (The Solution)
Git Smart Squash는 변경 사항을 분석하여 적절한 메시지를 가진 논리적인 커밋들로 재구성합니다:
빠른 시작 (Quick Start)
1. 설치 (Install)
pip install git-smart-squash
...
2. AI 설정 (Set up AI)
옵션 A: 로컬 환경 (Local) (무료, 비공개)
옵션 B: 클라우드 환경 (Cloud) (더 나은 결과)
export OPENAI_API_KEY="your-key"
export ANTHROPIC_API_KEY="your-key"
export GEMINI_API_KEY="your-key"
3. 실행 (Run)
cd your-repo
git-smart-squash
끝입니다. 계획을 검토하고 승인하세요.
커맨드 라인 파라미터 (Command Line Parameters)
| Parameter | Description | Default |
|---|
--base | 비교할 기준 브랜치 (Base branch) | 설정 파일 또는 main |
| ... | | |
추천 모델 (Recommended Models)
기본 모델 (Default Models)
- OpenAI:
gpt-5 (기본), gpt-5-mini, gpt-5-nano - GPT-5 모델만 지원, 기본 추론 수준: 낮음(low)
- Anthropic:
claude-sonnet-4-20250514 (기본)
- Gemini:
gemini-2.5-pro (기본)
- Local/Ollama:
devstral (기본)
모델 선택 (Model Selection)
git-smart-squash --ai-provider openai --model gpt-5-mini
...
마이그레이션: OpenAI에서 GPT-5로 (Responses API)
- OpenAI 통합은 이제 Responses API를 사용하며, GPT‑5 모델만 지원합니다.
- 지원되는 모델:
gpt-5 (기본값), gpt-5-mini, gpt-5-nano.
--reasoning을 사용하여 추론 노력을 제어할 수 있습니다 (high | medium | low | minimal; 기본값: low).
- 이전에 GPT‑4.* 모델을 사용했다면, GPT‑5로 전환하거나 다른 제공업체를 선택하세요:
- OpenAI:
--ai-provider openai --model gpt-5
- Anthropic:
--ai-provider anthropic --model claude-sonnet-4-20250514
- Gemini:
--ai-provider gemini --model gemini-2.5-pro
- 로컬 (Ollama):
--ai-provider local --model devstral
- CLI에는 부드러운 사전 검사 기능이 포함되어 있습니다: OpenAI를 선택했지만 GPT‑5가 아닌 모델을 사용하면, 마이그레이션 지침과 함께 유용한 메시지가 표시됩니다.
추론 예시:
git-smart-squash --ai-provider openai --model gpt-5 --reasoning high
사용자 정의 지침 (Custom Instructions)
--instructions 매개변수를 사용하면 커밋이 어떻게 정리될지 제어할 수 있습니다:
예시
git-smart-squash -i
| 제공업체 | 비용 | 개인 정보 보호 |
|----------|------|---------|
| **Ollama** | 무료 | 로컬 |
| ... |
사용자 정의하려면 설정 파일을 생성하세요:
**프로젝트별** (`.git-smart-squash.yml`을 저장소에 위치):
```yaml
ai:
provider: openai
reasoning: medium
...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
전역 기본값 (~/.git-smart-squash.yml):
ai:
provider: local
max_predict_tokens: 50000
...
문제 해결 (Troubleshooting)
"Invalid JSON" 오류
이것은 일반적으로 AI 모델이 응답을 제대로 형식화하지 못했음을 의미합니다:
- Ollama 사용 시:
llama2 대신 mistral 또는 mixtral로 전환하세요.
- 해결 방법:
ollama pull mistral를 실행한 후 다시 시도하세요.
- 대안:
--ai-provider openai를 사용하여 클라우드 제공업체를 이용하세요.
모델이 지침을 따르지 않는 경우 (Model Not Following Instructions)
일부 모델은 복잡한 지침 처리에 어려움을 겪습니다:
- 더 나은 모델 사용:
--model gpt-5 또는 --model claude-3-opus를 사용하세요.
- 지침 단순화: 명확한 하나의 지시가 여러 개의 지시보다 효과적입니다.
- 구체적으로 명시: "티켓 번호를 추가하라" 대신 "[ABC-123]로 접두사 붙이기"와 같이 작성하세요.
"Ollama not found" 오류
ollama serve
ollama pull devstral
커밋 그룹화가 부실한 경우 (Poor Commit Grouping)
AI가 너무 많은 커밋을 생성하거나 그룹화가 잘 안 될 때:
- 모델 부족: 더 큰 모델을 사용하세요.
- 지침 추가: `-i
대규모 변경 사항 / 토큰 제한
로컬 모델은 약 32k 토큰 제한을 가집니다. 대규모 변경 사항의 경우:
- 더 최신 커밋과 함께
--base 사용하기
- 클라우드로 전환:
--ai-provider openai
- 작은 PR들로 분할하기
도움이 필요하신가요?
상세 문서를 확인하거나 이슈를 열어주세요!
라이선스
MIT License - 자세한 내용은 [LICENSE] 파일을 참고하세요.