소프트웨어 개발과 프로젝트 관리
Git에서 두 개발자가 같은 파일의 같은 행을 각각 다른 브랜치에서 고쳐 쓰고, 한쪽 브랜치를 다른 쪽에 병합했다. 이때 일어나는 일로 적절한 것은?
- A커밋 일시가 새로운 쪽의 변경이 자동으로 채택되고, 오래된 쪽의 변경은 버려진다
- B받아들이는 쪽 브랜치의 변경이 항상 우선되고, 상대의 변경은 자동으로 버려진다
- C충돌(conflict)로서 병합이 멈추고, 개발자가 내용을 확인하여 어느 쪽을 남길지(또는 둘을 조합할지)를 정해 해소한다
정답과 해설 보기
정답: C. 충돌(conflict)로서 병합이 멈추고, 개발자가 내용을 확인하여 어느 쪽을 남길지(또는 둘을 조합할지)를 정해 해소한다
Git의 병합은 공통 조상으로부터의 변경을 두 브랜치에 대해 비교하고, 서로 다른 곳의 변경이면 자동으로 조합합니다. 같은 부분이 양쪽에서 변경되어 있으면 어느 쪽이 올바른지 기계적으로 정할 수 없으므로, 충돌로서 병합을 멈추고 파일 안에 양쪽의 내용을 표시합니다. 개발자는 그것을 편집하여 해소하고, 테스트한 뒤에 커밋합니다. 충돌을 줄이려면 브랜치를 오래 나눈 채로 두지 말고 자주 통합하는 것이 효과적입니다.