문제상황
다른 레포지토리를 clone하고
보기 > 표시 > 숨김항목표시 한 후 .git파일을 삭제해줬다
이제 clone받은 파일을 좀 수정하고 내 레포지토리에 push하려니 에러가 났다.
에러 전문
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'https://github.com/Pirogramming-20/Jubro.git'
hint: Updates were rejected because the remote contains work that you do not
hint: have locally. This is usually caused by another repository pushing to
hint: the same ref. If you want to integrate the remote changes, use
hint: 'git pull' before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
해결방안1 : 강제푸쉬
$ git push origin +master
에러가 뜨던 안뜨던 강제로 push해서 덮어쓰는 명령어인데, 협업 중이라면 다른 사람이 수정한 내용은 다 날아갈 수 있으니 좋지가 않다. 또 내가 깃허브에서 수정한 내용들도 다 날아가고 그냥 내 로컬 내용으로만 덮어쓰는거니 정말 비추.
아무 내용 없는 초반 레포지토리면 상관없을것 같다.
해결방안2: push 할 레포지토리 다시 pull 후 push 하기
git remote -v로 연결되어있는 것을 확인해보면 fetch가 있어서 충돌이 일어나는것 같다
fetch는 가져온 소스가 merge되지 않은 상태여서 따로놀고 있는것이다
그래서 내가 push하려는 레포지토리를 pull해서 수정사항과 merge가 되었고,
다시 push하니 성공적으로 파일이 올라갔다!