Git에서 Merge 과정 중 발생하는 Conflict의 원인과 해결 방법을 알아보고, 충돌을 줄이는 방법도 함께 살펴봅니다.
Merge Conflict는 두 개 이상의 Branch에서 같은 파일의 같은 부분을 수정했을 때 발생하는 충돌입니다.
Git은 어떤 내용을 최종 코드로 사용할지 판단할 수 없기 때문에,
개발자가 직접 수정해야 합니다.
같은 파일의 같은 부분을 수정하면 충돌이 발생할 수 있습니다.
어떤 코드를 유지할지 개발자가 직접 선택해야 합니다.
팀 프로젝트에서 가장 자주 경험하는 Git 문제 중 하나입니다.
예를 들어 두 명의 개발자가 같은 파일을 수정했다고 가정해보겠습니다.
두 작업을 Merge하는 순간,
Git은 어떤 코드를 선택해야 하는지 알 수 없어 Conflict가 발생합니다.
Merge를 진행하면 아래와 같은 메시지가 출력될 수 있습니다.
CONFLICT (content): Merge conflict in src/App.jsx
Automatic merge failed.이 경우 충돌이 발생한 파일을 직접 수정해야 합니다.
충돌이 발생한 파일을 열면 다음과 같은 표시가 나타납니다.
<<<<<<< HEAD
현재 브랜치 코드
=======
병합할 브랜치 코드
>>>>>>> feature/login원하는 코드만 남기고
충돌 표시(<<<<<<<, =======, >>>>>>>)는 모두 삭제합니다.
충돌을 해결했다면 다시 파일을 등록하고 Commit합니다.
git add .
git commit -m "fix: merge conflict 해결"마지막으로 GitHub에 업로드합니다.
git push origin mainConflict는 완전히 피할 수는 없지만,
다음과 같은 습관으로 줄일 수 있습니다.
git pull 하기Conflict가 발생했다고 해서 Git이 잘못된 것은 아닙니다.
오히려 여러 개발자가 동시에 작업하고 있다는 의미이며,
실무에서는 누구나 경험하는 자연스러운 과정입니다.
당황하지 말고 충돌 내용을 확인한 뒤,
필요한 코드만 남기고 다시 Commit하면 해결할 수 있습니다.
이번 글에서는 Merge Conflict의 원인과 해결 방법을 알아보았습니다.
Git을 처음 공부한다면 Conflict를 두려워하기보다,
원인을 이해하고 직접 해결해보는 경험이 가장 좋은 학습이 됩니다.