본문 바로가기

삶은계란 (Diary)/Xcode

Github에 push가 안 되는 경우

아 세상에...
별 거 안 건드렸는데(프로젝트를 클로닝 하고 Xcode 베탈 깔긴 했다 🤣) 작업한 내용이 local에서 remote로 push가 되지 않는다. 😇

Xcode에 Github을 다시 연결해 봐도, remote를 몇 번 다시 연결해 봐도 상황은 변하지 않는다.

사실 비슷한 문제를 작년에 겪은 적이 있었다.
당시에는 지금보다 작업량이 더 많은 상황이었기 굉장히 패닉이었는데 덕분에 제대로 배웠는지 뭐가 문젠지 알 수 있었다.

위 사진을 보면 main branch의 head와 현재 local repogitory의 head가 어긋난 걸 알 수 있다.
지금 같은 상황이 펼쳐지면 remote, local, main 세 개의 head가 제멋대로인 상태라 상황을 한눈에 보기 어려운데, console로 보면 좀 수월하다.

프로젝트가 위치하는 폴더로 이동해 위의 메뉴로 접근한다.
console에서 명령어로 이동하는 것보다 훨씬 직관적이기 때문에 선호하는 방식이다.

이후에는 명령어를 하나 입력한다.

git reflog

현재 local git에서 commit 하고 swith를 한 것뿐만 아니라 정말 모든 내용을 출력해 준다.
맨 위에 HEAD로 표시된 commit의 번호화 origin/main과 main이 위치한 커밋의 번호가 다른 것을 볼 수 있다.
즉, 마지막 commit이 이상한 Branch에서 진행 됐다는 것을 의미한다.

이 Head를 다른 Branch들에 연결만 해 주면 문제는 해결된다.

git push origin head:main

현재 Brach의 Head를 origin repo의 main에 push 하겠다는 의미이다.
git hub에 계정이 연결된 Xcode와는 달리 Console은 계정의 정보를 모르므로 계정과 token을 전달하면 push가 진행된다.

github의 repo에도 제대로 업로드가 된 것을 볼 수 있다.

기존에 엉망이 된 repo는 과감히 삭제해 주고, 업데이트된 remote로 스위치 해 주면 모든 게 해결된다.