더북(TheBook)

5.7.1 최신 상태

먼저 원격 저장소에 푸시하려면 자신의 로컬 저장소를 최신 상태로 유지해야 합니다. 즉, 자신의 저장소가 원격 저장소의 커밋보다 최신이어야 한다는 의미입니다. 최신이라는 의미를 좀 더 구체적으로 알아봅시다.

누군가 내 저장소보다 먼저 커밋하여 새로운 커밋으로 서버를 갱신했습니다. 하지만 나는 간발의 차이로 갱신된 서버 정보를 가지고 있지 않습니다. 푸시는 서버의 마지막 커밋과 푸시되는 커밋을 병합합니다. 이때 내 커밋은 서버의 최신 커밋보다 늦은 커밋으로 밀리게 됩니다. 커밋이 순차적이지 않을 때 깃은 푸시 동작을 거부합니다.

푸시 동작이 거부되면 풀 또는 페치 작업으로 자신의 로컬 저장소를 갱신해 주어야 합니다. 갱신 후에 다시 푸시합니다.

예를 들어 보겠습니다. 개발자 1, 개발자 2가 함께 코드를 개발합니다. 개발자 1이 코드를 수정했고, 개발자 2도 동시에 코드를 수정했습니다. 그리고 개발자 1이 코드를 푸시하여 원격 저장소를 갱신했습니다. 이후 개발자 2가 자신의 코드를 푸시하면 오류가 발생합니다. 개발자 1이 원격 저장소를 먼저 갱신하여 커밋 + 1 상태가 되었기 때문입니다. 따라서 개발자 2의 로컬 컴퓨터는 개발자 1이 갱신한 상태로 자신의 저장소를 pull 명령어로 업데이트한 후 푸시할 수 있습니다.

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