Git

github 강제 push 방법 절대! 하지마세요!!! ( error: failed to push some refs to )

aonee 2020. 2. 27. 00:57

 

[발생 문제 (Error)]

 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/devAon/SOPT-SERVER-nodejs.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

 

 

[문제 발생 원인] : error: failed to push some refs to 발생하는 이유는?

데이터 유실 등 문제가 있을 수 있는 부분이 존재!!한다.

따라서, git 에서 처리되지 않도록 막아뒀기 때문에 에러가 발생한다.

 

 

[해결 방법] 👉 해당 방법 말고 아래의 해결 방법을 참고해주세요 !

1. 실제 에러가 발생하는 부분을 수정한다.

 

2. 데이터 유실 등 위험을 감수하고  git에 강제로 push한다.

-강제 push 방법은 "+"를 붙여주면 된다.
기존명령:  $ git push -u origin master
강제명령:  $ git push -u origin +master

 

[해결]

 강제 push를 진행했다.

"+"를 붙여 명령어를 작성한 결과, 강제적으로 push 되었다.

 

 

 

[ 새로운 문제 발생 😂 ]

강제로 push를 진행한 repository의 모~든 작업이 다 날아가고 해당 파일만 남게 되었다.

 

 

??????응 , . . . . ?????????????네 에 .. ????????????????????????????????

 

괜히 막는 것이 아니다.

데이터 손실은 겁주는 것이 아닌 사실이었다.

이전에도 해당 명령어를 사용한 적 있었지만 이렇게 다 날려본 것은 처음이다.

 

임시방편이 임시가 아닌 열심히 가꾼 레파지토리를 날릴 수 있으니

항상 강제명령어 사용은 지양하고

문제가 발생한 부분을 수정하는 방식을 지향할 것 같다.

 

 

[해결방법] -> 수정했습니다 !

github remote에 있는 코드에 변경사항이 있었다면

현재 upload하려는 코드와 불일치해서 push reject가 됩니다. 

 

문제를 해결하기 위해 우선

$ git pull 

을 해주세요.

pull을 받을 때, 현재 브랜치 위치가 master가 아닌 다른 브랜치일 경우에는

ex) $ git pull 브랜치명 을 입력해주세요.

ex) $ git pull develop

ex) $ git pull feature/1

 

pull 받은 후, push를 하면 remote의 코드가 local에 잘 반영되어 push가 잘 될 것입니다 !

반응형