반응형
이번 포스팅에서는 [브랜치와 병합] 파트의 세부 주제인 충돌(Conflict) 발생 원인과 해결 가이드에 대하여 상세히 알아보겠습니다.

1. 충돌(Conflict)이 발생하는 이유
병합 과정에서 빈번하게 겪게 되는 난관이 바로 병합 충돌(Merge Conflict)입니다. 이는 두 개의 브랜치가 동일한 파일의 동일한 라인을 서로 다르게 수정했을 때 발생합니다. Git은 어느 코드를 최종적으로 선택해야 할지 판단할 수 없기 때문에, 자동 병합을 중지하고 사용자에게 직접 결정을 맡깁니다.
2. 충돌 해결 절차
충돌이 발생하면 당황하지 말고 아래의 절차에 따라 순차적으로 코드를 정리합니다.
# 1. 병합 시도 시 충돌 메시지 확인 후 상태 파악
$ git status
# (Both modified 상태로 표기된 파일들이 충돌 파일입니다.)
충돌 파일의 내부를 열어보면 Git이 삽입한 마커 기호들이 보입니다.
<<<<<<< HEAD
현재 체크아웃된 브랜치(main)의 코드 내용
=======
병합하려는 브랜치(feature-login)의 코드 내용
>>>>>>> feature-login
이 기호들(<<<<<<<, =======, >>>>>>>)을 모두 지우고, 남기고자 하는 최종 코드만 남긴 채 파일을 저장합니다.
# 2. 충돌을 수동으로 해결한 파일을 다시 준비 영역에 올림
$ git add 충돌해결파일.js
# 3. 마무리 병합 커밋 생성
$ git commit -m "충돌 해결 및 병합 완료"
에디터 활용: VS Code, IntelliJ와 같은 현대적인 통합 개발 환경(IDE)들은 충돌 해결 인터페이스를 제공하여 버튼 클릭 한 번에 '현재 변경 사항 수락', '수신된 변경 사항 수락'을 선택할 수 있도록 도와줍니다. 가급적 IDE의 내장 도구를 활용하는 것을 권장합니다.
지금까지 충돌(Conflict) 발생 원인과 해결 가이드의 개념과 구체적인 활용 방안에 대해 살펴보았습니다. 이어지는 다음 포스팅에서 관련 심화 주제를 지속적으로 다루어보겠습니다.
반응형
'CI.CD > GIT' 카테고리의 다른 글
| [GIT] Merge와 Rebase의 차이 및 선택 기준 (0) | 2026.07.14 |
|---|---|
| [GIT] 히스토리를 선형으로 정리하기 (Rebase) (0) | 2026.07.14 |
| [GIT] 작업 내용 합치기 (Merge) (0) | 2026.07.13 |
| [GIT] 브랜치 만들기 (Branch) (0) | 2026.07.13 |
| [GIT] 불필요한 파일 무시하기(.gitignore) (0) | 2026.07.13 |