에러메시지

failed to push some refs to 'https://github.com/blah/blah.git'

-> remote 저장소에 push를 할 수 없다.



hint : 업데이트를 할 수 없는 이유는 remote에서 행해진 작업이 local에서 이루어지지 않았기 때문이므로, push를 하기 전에 git pull를 해야할 것이다.





에러 상황

평소와 같이 remote에 push를 하려고 했더니 위와 같은 오류 메시지가 발생했습니다.


깃헙에서 readme.md 파일을 생성한 후 local에서 pull을 안한 상태로 작업을 진행했기 때문인 것 같습니다.

즉, remote에는 파일을 생성했다는 이력이 있는데, local에는 그 이력이 없기 때문에 발생한 상황입니다.





해결 방법


위의 에러상황을 스택오버플로우에 검색했더니 원인은 remote repo에서 commit을 잃어버려서서 발생했다고 하네요. ( 링크 )


해결 방법은 -f 옵션을 줘서 push를 하면 됩니다.

# git push -f origin 
  • -f 옵션
    • force의 약자로 git push -f 를 하게 되면, 커밋 이력을 강제로 덮어 씌우게 됩니다.


작업한 내용이 많다면 -f 옵션으로 푸시하는 것이 좋겠지만, 작업 내용이 많지 않다면 그냥 pull해서 push 해도 될 것 같습니다.