로컬 저장소에 있는 프로젝트를 GitHub에 있는 원격 저장소에 처음으로 push 하려고 할 때 (git push -u origin main) 위 사진과 같은 오류가 발생했다.
[rejected] main-> main (fetch first)
처음에는 예상치 못한 오류에 당황 했지만 로그가 제법 친절해서 로그를 보니 원격에 있는 변화를 통합하기 위해 git pull 을 하면 된다고 해서 pull 을 하고 다시 git push -u origin main를 했는데...
아니 선생님 ...
살펴보니 이건 내 로컬 git 브랜치가 원격 브랜치보다 뒤라서 push가 안된다는거 같다. pull을 했는데 왜?
생각해보니 위에서 git pull을 했을때 잘 된게 아니라
이런 문제가 있었다... 이걸 무시하고 다시 git push -u origin main를 하니까 문제가 또 생기지🙄...
그래서 이번에는
$ git pull origin main --allow-unrelated-histories
을 사용해서 관련 없는 두 저장소를 병합하도록 허용해주었다.
* branch main -> FETCH_HEAD
Merge made by the 'ort' strategy.
README.md | 1 +
1 file changed, 1 insertion(+)
create mode 100644 README.md
이번에는 잘 된거 같다 main 브랜치를 원격 저장소에서 로컬 저장소로 가져왔고, ort 전략으로 병합 작업을 수행했으며(...ort가 뭔지는 추후 공부가 필요할거 같다), 따라서 README.md 파일이 잘 생성된거 같다.
$ git push -u origin main
이후 다시 해당 명령어를 수행하였고, 이번에는 push가 잘 이루어 졌다.
아마도 GitHub에 레파지토리를 만들면서 README.md파일을 추가했는데 이에 대한 제대로 된 과정이 없이 push 작업을 시도한게 주 원인 같다.
현업에서 일을 하고 있지만 svn을 사용해서 그런가 git과 GitHub에 대해서는 쉽게 익숙해지지 않는다. 아무래도 자주 git 명령어를 사용해보고 로컬저장소와 원격 저장소에 pull, push를 해보고 다양한 오류를 해결해보면서 익숙해져야 할거 같다.