git merge가 스스로 완료되도록 만들었습니다 — VS Code, 터미널, 그리고 CI에서
요약
반복적인 Git 머지 충돌을 자동으로 해결해 주는 도구인 'Merge Magic'을 소개합니다. VS Code, 터미널, CI 환경에서 작동하며 LLM을 활용해 지루한 충돌 해결 과정을 자동화합니다.
핵심 포인트
- Git merge/rebase 시 인라인 해결사로 호출 가능
- Anthropic API를 활용한 지능형 충돌 해결
- CI 환경에서 자동 검증 및 Markdown 보고서 생성 지원
- 사용자 선택에 따른 자동 커밋(opt-in) 방식 제공
당신의 Merge Magic 초안을 바탕으로, 더 깔끔한 CEO 스타일의 Markdown 버전을 작성했습니다:
# Merge Magic: 사람이 개입할 필요가 없는 머지 충돌(Merge Conflicts) 해결하기
저는 동일한 머지 충돌(merge-conflict) 패턴을 반복해서 해결하는 것에 지쳐서 **Merge Magic**을 만들었습니다.
...
```js
<<<<<<< HEAD
export function getUser(id) {
console.log('[users] fetch', id);
return db.users.findById(id);
}
=======
export function getUser(id) {
if (!id) throw new Error('id required');
return db.users.findById(id);
}
>>>>>>> feature/validation
한 브랜치는 로깅(logging)을 추가했습니다.
다른 브랜치는 유효성 검사(validation)를 추가했습니다.
...
이 충돌은 두 커밋(commit) 사이에서 발생합니다:
🔴 HEAD a1b2c3d perf: bigger page size, shorter session timeout
Alice Chen · 2 days ago
🟢 MERGE_HEAD 9b79e0a scale: max page size, longer session for enterprise
Bob Kumar · 1 day ago
목표는 어려운 결정을 숨기는 것이 아닙니다.
...
npm install -g merge-magic
mergemagic setup
echo "* merge=mergemagic" >> .gitattributes
그 이후에는 git merge와 git rebase가 인라인(inline)으로 해결사(resolver)를 호출할 수 있습니다.
...
- run: npm install -g merge-magic
- env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: mergemagic ci --base "${{ github.base_ref }}"
CI 체크는 Actions 요약(summary)에 Markdown 보고서를 게시합니다.
...
npm install -g merge-magic
mergemagic demo
데모는 임시 저장소(temporary repository)에서 실행되며 귀하의 코드를 건드리지 않습니다.
제가 찾고 있는 피드백
특히 다음 세 가지 사항에 대한 피드백을 소중히 여기겠습니다:
-
검증 단계(verification floor)가 충분히 잡아내나요?
타입(type) 및 린트(lint) 오류는 잡아내지만, 동작 회귀(behavioral regressions)는 잡아내지 못합니다. -
기계적인 사전 처리(mechanical pre-pass)가 너무 보수적인가요?
현재는 LLM이 잘 처리할 수 있는 상황임에도 불구하고 모호한 모든 것을 뒤로 미룹니다. -
CI 모드가 너무 공격적이거나 너무 조심스러운가요?
자동 커밋(Auto-commit)은 선택 사항(opt-in)이며, Merge Magic은main으로 직접 푸시(push)하는 것을 거부합니다.
가장 유용한 피드백은 해결 방식(resolution)이 잘못되었을 때 발생합니다.
그러한 사례들이 해결사(resolver), 프롬프트(prompt), 그리고 사전 검사(pre-pass)를 개선하는 밑거름이 됩니다.
병합 충돌(Merge conflicts)은 사라지지 않을 것입니다.
하지만 지루한 충돌들은 사라져야 합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기