티스토리 뷰

깃을 공부하면서 로컬 저장소에서 원격 저장소로 git push 하는 중에 다음과 같은 에러가 발생했다.

hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

 

힌트를 읽어 보면 현재 로컬에는 원격 저장소의 작업(즉, 커밋)이 포함되지 않았다는 것이다. 실제로 원격 저장소에는 로컬 저장소에 없는 커밋이 하나 더 있었다. 그래서 힌트에서도 푸시하기전에 git pull과 같은 작업이 필요하다고 알려준다.

 

힌트대로 먼저 git pull 명령으로 로컬 저장소의 작업을 가져오자. 이 상태에서도 아직은 푸시를 할 수 없다. 현재 로컬에서 로컬 HEAD는 원격 저장소에 없는 커밋을 가르키고 있고, 원격 HEAD는 다른 커밋을 가르키고 있기 때문이다.

 

그렇기 때문에 git reset으로 원격 HEAD로 이동해야 한다. reset시 옵션을 잘 선택해서 이동하자. 그리고나서 변경사항을 다시 커밋을 한 후 원격 저장소로 푸시하면 에러가 없이 잘 된다.

댓글
공지사항