Git으로 인한 충돌 파일 해결하기: 전문 엔지니어의 접근법
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
DevOps
대상자
- 개발자 및 팀 협업자
- 중간~고급 수준의 Git 사용자 (이전 커밋 히스토리, 메르지 툴 사용 경험 필요)
핵심 요약
fatal: Exiting because of an unresolved conflict
에러는 메르지 상태가 완료되지 않은 파일이 존재할 때 발생git add
및git commit
명령어를 통해 충돌 파일을 해결하고 커밋해야 작업이 진행 가능git mergetool
, VSCode, Meld 등 메르지 툴 사용은 충돌 해결 효율성 향상에 기여git pull --rebase
및 자주 커밋하는 습관은 충돌 발생 가능성 감소 및 히스토리 관리 용이성 제공
섹션별 세부 요약
1. 충돌 발생 원인
git pull
실행 시 로컬/리모트 변경사항 자동 조정 불가능- 이전 메르지 작업에서 미해결 충돌 존재
git status
명령어로both modified
상태의 파일 확인 가능
2. 충돌 파일 해결 절차
- 충돌 마커(<<<<<<< HEAD, =======, >>>>>>>) 포함된 파일 열기
- 수동 수정 또는 메르지 툴(예:
git mergetool
)을 이용하여 충돌 해결 git add <파일>
명령어로 해결된 파일 추가 후git commit
으로 커밋
3. 고급 해결 전략
git stash
명령어로 임시 저장 후git stash pop
으로 복원git merge --abort
또는git rebase --abort
명령어로 메르지/리베이스 중단- VSCode(
code --wait .
) 또는 Meld, Beyond Compare 등 메르지 툴 활용
4. 실무 습관 및 팁
git pull --rebase
사용: 히스토리 선형성 유지- 자주 커밋: 작은 차이 분석 및 충돌 해결 용이성
- 기능 플래그 사용: 생산 배포 차단 방지
git status
정기 점검: 충돌 사전 감지
결론
git add
및git commit
명령어를 통해 충돌 해결 후 작업 진행 가능- 메르지 툴 사용 및 자주 커밋 습관을 통해 협업 효율성 극대화
- Git은 협업 파트너로, 충돌은 협업 과정에서 자연스러운 발생 사항으로 간주되어야 함