더북(TheBook)

5.7.2 충돌 방지

깃이 최신 상태에서만 푸시를 허용하는 것은 충돌을 방지하기 위해서입니다. 원격 저장소의 커밋을 내려받는 풀 작업은 내려받은 커밋들을 현재 브랜치로 자동 병합합니다. 이때 커밋 내용이 순차적이지 않으면 병합 과정에서 충돌이 발생합니다.

개발자 1과 개발자 2가 서로 다른 작업을 했다면 충돌이 없을 수도 있지만, 같은 영역을 동시에 수정했다면 개발자 2가 풀 작업을 할 때 무조건 충돌이 발생합니다. 개발자 2는 충돌을 해결한 후 커밋하고 푸시해야 하는데, 이를 해결하기가 어렵습니다. 따라서 깃은 이를 더 쉽게 해결할 수 있도록 푸시할 때 커밋의 순차적 기록을 확인합니다.

push 명령어를 사용할 때는 충돌을 최소화하기 위해 미리 원격 저장소를 확인합니다. 새로운 커밋 갱신이 없는지 pull 명령어를 사용하여 지속적으로 확인하는 것이 좋습니다.

최대한 충돌을 피할 수 있는 방법은 자신의 저장소와 원격 저장소의 상태를 자주 최신으로 유지하는 것입니다.

▼ 그림 5-10 권장 순서

286042.png

풀과 푸시를 자주 하여 충돌을 최소한으로 줄여 나가면서 작업을 유지합시다.

소스트리를 사용하면 푸시하기 전에 자신의 저장소와 어떤 차이점이 있는지 쉽게 확인할 수 있습니다. 소스트리의 push 5-a.jpg 위에 조그마한 숫자가 표시됩니다. 숫자는 현재 로컬 저장소와 원격 저장소 간 커밋 차이점을 출력합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.