보통 github 개인 repository에 프로젝트를 연결해서 사용할 떄 소스트리를 사용하였다.
그러다보니 react-create-app
과 같이 프로젝트 생성이 바로 되는 프로젝트들은 github에 repository를 생성하게 되면
폴더가 2개가 생기는 이슈가 있었다.
그럴 때마다 해당 폴더를 옮기거나 하는식으로 했었는데 이번에 명령어를 사용하여 작업을 해보았다.
1. github repository 생성
github 페이지로 가서 repository를 생성한다.
2. 로컬에서 프로젝트 경로로 들어간다 (명령어)
1 | $ git init // .git 디렉토리 생성 |
이렇게 순차적으로 명령어를 치다보면 마지막에 github과 연결하는 부분에서 해당 에러가 발생한다.
1
fatal: remote origin already exists 에러
해당 에러는 이미 remote origin
이 존재하기 때문이라고 한다.
그렇기 때문에 이미 존재하는 remote origin을 삭제하고 다시 github과 연결을 한다.
1 | $ git remote rm origin |
그리고 난뒤 파일을 작업되어 있는 파일을 푸시하려고 하면1
$ git push -u origin master
아래와 같이 에러가 발생한다.
1 | ! [rejected] master -> master (non-fast-forward) |
pull을 받을게 있다는 것이다.git pull origin 브랜치명
명령어로 pull을 받으려고 하면
아래와 같이 에러가 발생한다.
1 | fatal: refusing to merge unrelated histories |
이 이슈는 이미 존재하는 두 프로젝트이 기록이 있어 merge를 하라는 뜻이다.
1 | $ git pull origin 브런치명 --allow-unrelated-histories |
--allow-unrelated-histories
명령 옵션은 이미 존재하는 두 프로젝트의 기록(history)을 저장하는 드문 상황에 사용된다고 한다.
즉, git에서는 서로 관련 기록이 없는 이질적인 두 프로젝트를 병합할 때 기본적으로 거부하는데, 이것을 허용해 주는 것이다.
그러면 이제 git push가 가능하다.