기본 브랜치를 master에서 main으로 변경하기
Git bash에서 git 로컬 저장소 생성(초기화)($ git init) 시 기본 브랜치가 master로 되어있다.
현재 Github와 Gitlab에서는 main을 기본 브랜치로 하였기 때문에 github 원격 저장소와 로컬 저장소 연결 시, checkout 명령어를 이용하여 사용하는 브랜치를 한 번 바꿔주어야 한다.
Github 설정에서 기본 브랜치를 main에서 master로 변경하는 방법은 아래 블로그를 참고하면 된다.
왜 master에서 main으로 변경되었는지에 대한 간략한 이야기도 적혀있는데, 이런 이유 때문이었을 줄은 생각도 못했다.
아래 방법은 Git bash에서 설정하는 것으로, git 저장소 생성(초기화) 시 기본 브랜치를 main으로 해두는 것이다.
$ git config --global init.defaultbranch main
이후 깃 저장소 생성(초기화) 시 자동으로 기본 브랜치가 main으로 되는 걸 확인할 수 있다.
기본 브랜치 변경 후 git pull이 안될 때
$ git remote add origin [Git 원격 저장소]
기본 브랜치를 main으로 설정한 뒤 원격 저장소 이름을 origin으로 하여 로컬 저장소를 연결하고, git pull을 받으면 다음과 같은 문구가 뜬다. (대게 원격 저장소의 이름은 origin으로 한다.)
There is no tracking information for the current branch.
Plesase specify which branch you want to merge with.
See git-pull for details.
이럴 땐 두 번째로 알려준 명령어를 사용하면 된다.
to=origin/ 뒤의 <branch> 부분에 github의 브랜치명을 작성해준다.
$ git branch --set-upstream-to=origin/main main
이후 다시 $ git pull을 하면 잘 받아와 진다.
사실 위 명령어는 $ git pull을 하기 전에 먼저 수행해야 된다. 로컬 브랜치인 main 브랜치를 트래킹 브랜치로 설정해주는 것이다.
트래킹 브랜치는 리모트 브랜치와 직접적인 연결고리가 있는 로컬 브랜치를 말한다.
트래킹 브랜치에서 $ git pull을 실행하면 리모트 저장소(현재 기준 로컬 저장소와 연결된 원격 저장소)로부터 데이터를 내려받아 자동으로 merge 한다.
원래는 (이름을 origin으로 설정한) 원격 저장소 origin/master 브랜치가 로컬 저장소 master 브랜치와 자동으로 연결된다.
그러나 github에서는 이제 master라는 이름의 기본 브랜치를 사용하지 않고, 우리도 default 브랜치를 main으로 변경하였으니 위 명령어를 사용해 원격 저장소의 origin/main 브랜치와 로컬 저장소의 main 브랜치를 연결시켜준 것이다.