🌿 중급 개발도구
Conflict가 뭔가요?
쉽게 이해하기
두 명이 같은 문서를 동시에 편집하다가 같은 문장을 서로 다르게 고쳤다고 생각해보세요. 어느 쪽을 선택해야 할지 컴퓨터가 판단할 수 없으니까 '너희가 직접 골라'라고 물어보는 거예요. conflict는 이렇게 Git이 자동으로 합칠 수 없는 상황입니다.
핵심 정리
Git에서 같은 파일의 같은 부분을 두 명이 다르게 수정했을 때 발생하는 충돌입니다.
자세히 알아보기
conflict(충돌)는 Git이 두 브랜치를 자동으로 병합할 수 없을 때 발생합니다. 보통 같은 파일의 같은 줄을 서로 다르게 수정했을 때 일어나요.
merge나 rebase를 시도할 때 conflict가 생기면 Git은 작업을 멈추고 사용자에게 어떻게 할지 결정하라고 요청합니다. 파일을 열어보면 `<<<<<<<`, `=======`, `>>>>>>>` 같은 표시가 보이는데, 이게 충돌 마커예요. 위쪽이 현재 브랜치의 변경사항, 아래쪽이 병합하려는 브랜치의 변경사항입니다.
conflict를 해결하려면 두 변경사항을 직접 비교해서 어느 쪽을 선택할지, 또는 둘 다 포함할지 결정해야 해요. 충돌 마커를 모두 지우고 원하는 코드만 남긴 다음, `git add`로 해결했다고 표시하고 커밋하면 됩니다.
VS Code 같은 에디터는 conflict를 해결할 때 'Accept Current Change', 'Accept Incoming Change', 'Accept Both Changes' 같은 버튼을 제공해서 클릭만으로 쉽게 처리할 수 있어요. 실무에서는 conflict가 자주 발생하니까 당황하지 말고 차근차근 해결하면 됩니다.