안 까먹으려고 적어두는 지옥의 git push...
깃허브 default branch는 main인데 아무 생각없이 master로 push 해버렸고
원하지 않았던 branch가 만들어져버림...
git push -u orgin main
갈겼지만 실패...branch 이름은 mater에서 main으로 바꿔주면 된다길래 git branch -m main
를 넣었다.
순조롭게 branch 이름이 바껴서 다시 git push -u orgin main
를 갈겼다 !
결과는
실패...
아래의 오류가 떴다.
error: failed to push some refs to '깃헙 주소'
오류가 뜨면서 밑에 (e.g., 'git pull ...') before pushing again 라고 힌트가 뜬다.
말 그대로 push하기 전 pull을 하라는 말이다.
☑️ 왜 그래야하나 하고 찾아보니
리드미를 이미 생성해둔 레포지토리였기 때문이었다!
친절하게 힌트로 pull을 하라길래 git pull orgin main
을 시도했다 !
결과는
성공할 줄 알았으나 실패... 😊 🔥
아래의 오류가 떴다.
fatal: refusing to merge unrelated histories
이것도 역시 힌트가 떴는데 도통 무슨 말인지 모르겠어서 영원한 친구 구글을 켰다..
merge가 거부되었다는 것인데, 서로 연관성이 없기 때문에 거부한거라고 한다.
내 상황은
즉, 원격 저장소와 로컬 저장소 간의 공통 존재가 없었다는 의미이다.
pull 명령어는 fetch + merge 작업을 한번에 처리하는 명령어인데,
여기서 fetch는 됐으나 merge는 공통으로 가지고 있는 commit이 없기 때문에 병합을 거부한 것이다.
이 상황을 해결하려면 공통으로 가지고 있는 commit을 만들어 주어야 한다.
git clone
을 사용해 원격 저장소를 복제git pull origin main --allow-unrelated-histories
난 2번을 선택했다
신나게 강제로 pull하고 merge가 되는 거 같았는데, 커밋 메세지를 적으라는 식의 페이지(?)가 떴다...
사실 또 오류가 나서 너무 충격에 휩싸이는 바람에 잘 안읽었지만
어쨌든
흔히 esc나 q키 ctlr+C 로 페이지들을 탈출하는데 얘는 안됐다...
처음에는 아예 뭐를 잘 못 건들여서 난리가 났고 수습한 뒤 탈출을 시도했으나
You have not concluded your merge (MERGE_HEAD exists)
오류가 났다 😙
없는게 없는 구글링으로 해결을 했다.
이게 merge를 하는 과정에서 conflict가 일어나서 나는 오류라고 한다.
그래서 해결하려면,
git merge --abort
git pull -u origin main
하면 된다.
아마 다시 내려 받으면 정체 모를 페이지가 뜨는데
차분하게 q키를 갈기다보면
글자를 작성할 수 있게 되고 거기에 :wq
쓰고 enter를 누르면 탈출할 수 있다.
드디어 main branch에 push 성공했다...✨