Git 머지 충돌 해결하는 방법과 절차
Git 머지 충돌이 발생했을 때의 증상과 원인, 해결 방법을 단계별로 정리하여 실무에서 유용하게 활용할 수 있도록 안내합니다.
증상 및 오류 메시지
Git에서 머지 충돌이 발생하면, 터미널에 다음과 같은 메시지가 표시됩니다:
CONFLICT (content): Merge conflict in <파일명>
이 메시지는 두 개의 브랜치에서 동일한 파일의 동일한 부분을 수정했을 때 발생합니다. 이 경우 Git은 어떤 변경 사항을 반영해야 할지 결정할 수 없으므로, 개발자가 직접 선택해야 합니다. 머지 충돌이 발생하면 Git의 상태를 확인하기 위해 git status 명령어를 입력해야 하며, 충돌이 발생한 파일 목록을 확인할 수 있습니다.

이미지 출처: https://checherry.tistory.com/47
머지 충돌의 원인
머지 충돌은 주로 다음과 같은 상황에서 발생합니다:
- 같은 줄 수정: 두 브랜치에서 동일한 파일의 같은 줄을 수정한 경우.
- 파일 삭제와 수정: 한쪽 브랜치에서 파일을 삭제하고, 다른 쪽에서 수정한 경우.
- 이름 변경: 파일이 한쪽에서 이동되거나 이름이 변경된 경우.
이러한 상황에서 Git은 어떤 변경 사항을 유지해야 할지 판단할 수 없으므로 충돌을 발생시킵니다.
충돌 확인 명령어
충돌이 발생했을 때 확인할 수 있는 명령어는 다음과 같습니다:
git status
이 명령어를 통해 충돌이 발생한 파일 목록과 상태를 확인할 수 있습니다. 충돌이 발생한 파일을 열어보면, 다음과 같은 충돌 마커가 포함된 내용을 볼 수 있습니다:
<<<<<<< HEAD
현재 브랜치의 코드
=======
합치려는 브랜치의 코드
>>>>>>> feature-branch
충돌 해결 절차
머지 충돌을 해결하는 과정은 다음과 같습니다:
- 충돌 파일 확인:
git status명령어로 충돌이 발생한 파일 목록을 확인합니다. - 충돌 파일 열기: 충돌이 발생한 파일을 열어 충돌 마커를 확인합니다.
- 코드 선택: 어떤 코드를 남길지 결정합니다. 필요에 따라 두 코드를 합치는 것도 가능합니다.
- 충돌 마커 제거: 선택한 코드 외의 충돌 마커를 모두 제거합니다.
- 변경 사항 스테이지:
git add <파일명>명령어로 수정한 파일을 스테이지에 추가합니다. - 머지 완료:
git commit명령어로 머지를 완료합니다.
이 과정을 통해 Git은 충돌이 해결되었다고 인식하게 됩니다.
흔한 실수
머지 충돌을 해결할 때 자주 발생하는 실수는 다음과 같습니다:
- 충돌 파일을 확인하지 않고 수정:
git status를 확인하지 않고 바로 파일을 수정하는 경우. - 충돌 마커를 남긴 채 커밋: 충돌 마커를 제거하지 않고 커밋하는 경우.
- 변경 사항을 스테이지하지 않음: 수정 후
git add를 하지 않는 경우.
재발 방지 체크리스트
머지 충돌을 예방하기 위해 다음과 같은 체크리스트를 활용할 수 있습니다:
- 자주 Pull하기: 다른 팀원과의 작업을 자주 머지하여 충돌 가능성을 줄입니다.
- 작은 단위로 커밋: 변경 사항을 작게 나누어 커밋함으로써 충돌을 줄입니다.
- 코드 리뷰: 팀원 간의 코드 리뷰를 통해 변경 사항을 사전에 공유합니다.
결론
Git 머지 충돌은 개발 과정에서 자주 발생하는 문제입니다. 그러나 올바른 절차를 따르면 쉽게 해결할 수 있습니다. 충돌이 발생했을 때는 당황하지 말고, 각 단계를 차근차근 따라가며 해결해 나가면 됩니다. 충돌을 예방하기 위해서는 팀원들과의 소통과 자주 머지하는 습관이 중요합니다.
실무 적용 체크리스트
- Git merge conflict 해결 순서을 적용하기 전에 현재 운영 환경의 기준값과 예외 상황을 먼저 정리합니다.
- 변경 전후로 확인할 지표를 정하고, 문제가 생겼을 때 되돌릴 수 있는 절차를 문서화합니다.
- 한 번에 모든 서버나 서비스에 적용하기보다 작은 범위에서 검증한 뒤 점진적으로 확대합니다.
- 담당자, 확인 시간, 장애 판단 기준을 명확히 남겨 같은 문제가 반복될 때 빠르게 대응할 수 있게 합니다.
