본문 바로가기
개발 공부/Git

[지옥에서온git] 이제 익숙한 에러 error: failed to push some refs to 원인 분석 그리고 드디어 근본적 해결

by 반달bear 2022. 8. 4.
반응형

이제 익숙한 에러인 failed to push som refs to 에러가 또 발생했습니다.

다행인건 이번엔 원인을 분명히 알고 있다는 것입니다.

 

왜냐하면 제가 연습삼아 커밋들을 다 날리고 제일 처음 만든 커밋을 시작으로 rebase 커맨드를 연습하려고 하니까 난 에러니까요..(눙물)

 

깃헙에는 커밋이 1->2->3까지 있었고 제 컴퓨터는 reset --mixed를 이용해서 최근 커밋을 1로 돌렸기에 'current branch is behind its remote counterpart'라는 에러가 난 것이지요. (이제까지의 에러들도 그래서였을까요..?)

 

 

예전 게시글에서처럼 강제로 푸쉬하려다가 아니 reset 커맨드가 있는데 이걸 원격저장소에 그냥 올리는 방법이 없는게 믿기지가 않아서 git push --help를 통해 매뉴얼을 찾아봤습니다. 

 

거기서 발견!!!! if <이전 커밋의 정보와 매치되는 커밋을 푸쉬하는거라면>, 강제로 푸쉬되게 해라 라는 커맨드입니다.

뒤의[]는 어떻게 활용할지 잘 모르겠어서

git push --force-with-lease

를 입력했더니 push가 잘 되는걸 확인 할 수 있었습니다.

 

 

조금 더 찾아봤더니 force-with-lease는 공동작업을 할때 다른 동료가 수정한 코드 위에 강제로 동기화 하는 것을 막기 위한 조치라는 것을 확인했습니다. 그래서 다른 분들 글에 이러한 에러가 나면 풀을 먼저 하고 푸쉬를 하라고 적혀있었나 봅니다. 

혼자 작업할때는 아무렇게나 수정해도 상관없으니 +branch 커맨드로 강제 푸쉬를 해줘도 괜찮겠지만 그래도 --force-with-lease 커맨드에 익숙해지는 것이 추후에 날 사고를 미연에 방지하는 방법 아닐까 생각합니다 :>

의문이 풀려서 기분이 좋네요ㅎㅎ

심심하면 터미널 브랜치 이름을 마스터로 두고 깃허브 메인 브랜치 이름을 마스터로 바꿔도 푸쉬가 잘 나게끔 만들어봐야겠습니다.

 

 

반응형

댓글