주제 4
충돌 해결
conflict는 재난이 아니라, 겹치는 수정 중 어떤 최종 텍스트를 남길지 Git이 도움을 요청하는 상태입니다.
conflict의 의미
conflict는 두 수정이 같은 줄이나 같은 영역을 동시에 건드릴 때 생깁니다.
Git은 어느 쪽을 최종 텍스트로 남길지 스스로 결정하지 않고 멈춰 섭니다.
처음 신호는 push 경고입니다. remote가 먼저 바뀌었으니 pull부터 하라는 뜻입니다.
경고 후에는 Source Control 메뉴에서 merge 흐름을 시작합니다.
파일 하나씩 해결
VS Code Merge Editor나 conflict marker를 직접 보면서, 주변 문맥을 읽고 최종 텍스트가 무엇이어야 하는지 판단합니다.
최종 결과가 실제로 그래야 하는 게 아니라면 한쪽을 통째로 받지 않습니다.
merge 마무리
충돌을 해결한 뒤에는 marker가 사라졌는지 확인하고, 파일을 stage한 다음 merge commit 또는 평소 commit 흐름을 마무리합니다.
넘어가기 전
최종 파일 내용이 무엇이어야 하는지 설명할 수 있고, 그 뒤 repository가 다시 clean 상태로 돌아오면 conflict 처리는 올바르게 끝난 것입니다.