평소와 같이 git add .
로 변경사항을 스테이징하고, git commit -m "message"
로 커밋 후 remote에 push 했더니 발생한 오류.
add, commit, push는 늘 하던 일인데 에러가 떠서 너무 당황스러웠다.
호다닥 구글링을 해보니 대체로
- 커밋을 하지 않고 push를 해서 => 커밋을 잘하자
- 해당 브랜치가 없는데 push 하려 해서 => 브랜치를 만들자
- .git 정보가 바뀌어서 => git init 하고 다시 하자
이 경우를 설명을 해놓았던데, 난 세가지 경우 모두 해당 사항 없다...
커밋도 안하고 push 하는 사람이 있어???? (바로 나임) 근데 이번엔 아니다.
대체 뭐란 말임?!
아무튼 스택 오버플로우에서 해답을 발견했는데 git push origin HEAD:[branchName]
이렇게 해주면 된다길래 해봤더니 제대로 push가 되긴 했다.
👆 HEAD: 사용해서 push 전
👆 push 후
HEAD:
를 사용하니 문제도 해결되고 HEAD가 가리키는게 바뀌긴 했다.
근데 문제는 이렇게 해줬는데 또 일일이 push 할 때마다 HEAD:
를 입력해줘야 한다는 것... ㅎ ㅏ ㅇ ㅏ...... 나는 HEAD: 없이 push 하고싶다.
그래서 몇가지 가정을 해서 고쳐보려고 노력했으나...
chayujin@chayujin-ui-MacBookPro resume-maker % git show-ref
fac17cd54c19d6f0da29819978e7e4457f369cb3 refs/heads/dev
fac17cd54c19d6f0da29819978e7e4457f369cb3 refs/heads/main
5c7850039e6d0b02a1ff907c80c09017a51818d0 refs/remotes/origin/development
2ce7e7d8baf399cc582392a4e3734aaab4273cd0 refs/remotes/origin/main
git show-ref
명령어를 이용해서 ref를 살펴봤는데, refs/remotes/origin/HEAD 가 없는 걸 발견했다. 그래서 HEAD를 development 브랜치로 명시적으로 추가해줘야하나? 싶어서 git remote set-head origin development
해서 추가해줬다.
chayujin@chayujin-ui-MacBookPro resume-maker % git show-ref
69a533a6f1d96b343216035c1511d2194d135e04 refs/heads/dev
e883dd3890b79f806f204201722b99cad9bee907 refs/heads/main
369e901c22483ee9a3730b19a68ad677d8591b82 refs/remotes/origin/HEAD // ✅ 여기가 추가됨
369e901c22483ee9a3730b19a68ad677d8591b82 refs/remotes/origin/development
2ce7e7d8baf399cc582392a4e3734aaab4273cd0 refs/remotes/origin/main
음.. 좋다. 이제 development 브랜치가 HEAD 이겠지? 하고 다시 HEAD:
없이 push 시도. 여전히 안된다 ^_^...
결론 👉 :HEAD
붙여서 push 하기.
으아아아아아아아아~~~!!! 이게 뭐라고 이렇게 시간을 잡아먹었는데 결국 완벽히 해결되지 못해서 찜찜하다 ㅠㅠㅠ