💻 에러 상황
로컬저장소 : 파일들을 git에 commit해둔 상태원격저장소 : 저장소 생성 후 readme 파일만 만들어둔 상태
1. 'git push -u origin main' 명령어로 Github 원격저장소에 로컬파일들을 올리려고 했는데
아래와 같은 에러가 뜨며 pull을 먼저 하라는 hint가 나옴.
‘ ! [rejected] main -> main (non-fast-forward)’
2. 그래서 'git pull origin main' 을 하고 다시 push 했는데 계속 같은 에러가 뜸..
❗️❗️ 원인 발견 ❗️❗️
로컬저장소인 Head의 시작점(?)과 github 원격저장소인 main의 시작점(?)이 달라서 나는 에러
(이렇게 이해했고 이렇게 설명하는게 나의 최선이다.. 혹시 지나가다가 우연히 보시는 코딩 능력자분 계시다면 올바른 용어로 정정 부탁드려요... )
로컬의 시작점을 github 원격저장소와 같게 해준 후 로컬의 파일을 올려야한다.
✅ 해결방법
- 터미널에 git log를 치고 가장최근의 commit id를 복사해둔다.
- :wq 로 빠져나온다. (Mac 버전)
- git fetch --all을 한다. (github저장소에 있는 커밋을 로컬로 불러오는 작업)
- git reset origin/main --hard 를 한다. (원격저장소의 파일이 로컬에 덮어쓰여지며 시작점이 같아지게됨)
- git cherry-pick ${1번에서 복사해둔 commit id} 를 하면 최근 로컬에서 commit해둔 파일들이 추가된다.
- 다시 git push 해보면 아주잘 올라간다.
해 결
'에러모음S > git & github' 카테고리의 다른 글
.gitignore 파일에 추가하는 것을 깜빡하고 git add . 를 해버린 경우!? (0) | 2024.05.18 |
---|