본문 바로가기

git rerere로 같은 충돌 두 번 풀지 않기

조회 0 · 댓글 0
주말만기다려주말만기다려작성자2026년 9월 21일

긴 브랜치를 반복해서 rebase하거나 여러 번 merge하다 보면 똑같은 충돌을 매번 손으로 다시 푸는 상황이 생깁니다. 이럴 때 git rerere(reuse recorded resolution)를 켜 두면 한 번 해결한 충돌을 기록해 두었다가, 다음에 같은 충돌이 나면 그 해결을 자동으로 재적용해 줍니다. 전역으로 한 번만 켜 두면 됩니다.

git config --global rerere.enabled true

켠 뒤에는 따로 명령을 칠 게 없습니다. merge가 자동병합에 실패하면 git이 알아서 rerere를 불러 충돌 상태를 기록하고, 여러분이 해결한 뒤 커밋하면 그 해결안을 저장합니다. 이후 동일한 충돌을 만나면 3-way 병합으로 저장된 해결을 그대로 되살립니다. rebase도 이 기록을 활용합니다.

확인용 명령도 있습니다. git rerere status는 기록 대상 경로를, git rerere remaining은 자동 해결되지 못한 경로를, git rerere diff는 현재 해결 상태를 보여 줍니다. 잘못 기록했으면 git rerere forget <pathspec>로 지우면 됩니다. ⚠️ 주의: rerere가 해결을 재적용해도 인덱스는 그대로 두기 때문에 결과를 반드시 git diff로 확인하고 직접 git add 해야 커밋됩니다.

🔗 https://git-scm.com/docs/git-rerere

로그인 후 답글을 남길 수 있습니다.