TIL - Git push 에러

Wooney98·2022년 12월 6일
1

TIL

목록 보기
6/6

12/6

평화롭게 원격으로 commit하고 push하고 있었다. 근데 갑자기!!!

push가 rejected 되었다..!!
무엇이 문제였고 어떻게 해결했는지 정리하자!

원인

내가 무엇을 만졌는지 곰곰히 생각해보았다. 잘 되던 push가 왜안될까.. 하는 찰나 머리로 무언가가 스쳐 지나갔다. 바로 그것은, 원격으로 push 해놓고 github 홈페이지에서 Readme.md를 수정한것이다..!!
깃(Git)에 대해서 그저 원격으로 어떻게 commit하는지만 달달 외웠고, 그밖엔 깃의 내부구조에 대해 자세히 몰라서 GitHub에서 수정하면 안된다는걸 늦게 깨달았다.
강사님께서도 원격저장소와 로컬저장소에 들어있는 수정된 파일이 서로달라서 충돌한거라고 말씀하셨다.

해결

구글선생님께 물어보며 찾아보았다.

원격저장소안에 master 브랜치가 존재하지 않는다라고 나와있다.
원래 master였던 브랜치를 main브랜치로 바꾸었다.

git init 
git remote add origin ssh_url
git remote -v 
git pull origin main 
git add .
git commit -m “first commit“
git checkout -b main 
git push -u origin main

어찌됬든 현재 원격 저장소(remote repository)에는 수정이 안된 readme가 있고,
내 로컬에는(github 페이지)에는 readme가 수정되어있다.
약간 잔머리로, 수정하기 전 이전 파일들을 받은다음 local에서 다시 덮어씌우거나 reset을하여 되돌린다면 바뀌지않을까? 생각을하며 구글링을 하였다.

첨언
https://frontdev.tistory.com/entry/GIT-Conflict%EC%B6%A9%EB%8F%8C-%EB%82%AC%EC%9D%84-%EB%95%8C-%EA%B0%95%EC%A0%9C%EB%A1%9C-Pull-%ED%95%98%EA%B8%B0

Fetch로 브랜치를 수정해왔다.

remote -v했을때 origin으로 연결이 되어있어서 pull을 시도해보았다.

pull로 덮어씌우고 원래했던데로 코딩해서 문제해결하였다.

PULL
Pull로 Git 명령어를 사용할 시에는 현재 작업하고있는 로컬에 커밋을 병합합니다.
Pull 은 커밋을 먼저 검토하지 않고 자동으로 병합합니다 .
지점을 면밀히 관리하지 않으면 자주 충돌 할 수 있습니다.

profile
👨Education Computer Engineering 🎓Expected Graduation: February 2023 📞Contact info thstjddn77@gmail.com

0개의 댓글