Git 강제 Push 하기
개인 프로젝트를 개발하던 중 git push 시 에러가 발생하는 문제가 발생하였습니다.
git push -u origin master
To https://github.com/hahwul/a2sv.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/hahwul/a2sv.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
이러한 에러는 보통 remote branch의 코드가 local의 코드보다 앞서있기 때문에 코드단에서 충돌을 회피하고자 git에서 에러를 발생시킨 것이고 이는 git pull
로 해결 가능한 경우가 대부분입니다.
다만 임시 방편으로 push 시 --force
flag를 추가하여 강제로 push가 가능합니다. 물론 이 방법은 충돌을 무시하기 때문에 소스코드가 꼬일 수도 있으니 잘 확인하시고 진행하시는걸 추천드려요.
- 기존명령:
git push -u origin master
- 강제명령:
git push -u origin master --force
실제로 테스트 해보면 forced update 된 것을 보실 수 있습니다.
git push -u origin master --force
Counting objects: 8, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (8/8), 10.01 KiB, done.
Total 8 (delta 0), reused 0 (delta 0)
To https://github.com/hahwul/a2sv.git
+ 17b669e...877fdd0 master -> master (forced update)
Branch master set up to track remote branch master from origin.
추가로.. 예전에는 +branch
명으로 강제 push가 가능했습니다. (현재도 되는지는 잘 모르겠네요)
git push -u origin +master
어쨌던 –force 플래그 이후 부턴 보통 –force를 사용하니 +branch
는 참고만 해주세요 :D