Git branch 이름 master->main 변경

Hotaek Han·2021년 10월 7일
2
post-thumbnail

Github는 인종 차별적 단어를 없애자는 취지로 master라는 용어를 main으로 대체했다. github에서 새로운 repository를 만들면 main이라는 branch가 기본 값으로 생성된다.

그래서 VS Code로 'git init' 명령을 실행한 다음, readme.txt 파일을 임의로 생성한 후, add, commit을 해준 다음 'git push origin main' 명령을 실행했다.

하지만 아래와 같이 오류가 발생했다.

github에 main 브랜치가 있는데 왜 실패했다는 것인지 이해를 못했었다.

그런데 'git push origin master'는 정상적으로 동작했고, github에 들어가보면 아래와 같이 main에는 아무 것도 업로드되지 않고 master라는 branch가 새로 생기면서 그곳에 모든 코드가 업로드 되었다.

다시 위에 올린 터미널을 보면, 현재 내가 작업중인 브랜치가 궁금하여 'git branch'를 입력했을 때, 'master'라고 출력된 것을 확인할 수 있다.

스택오버플로우에 검색해봤으나 영어가 짧아서 명쾌한 답을 얻지 못했다. 나는 구글에서 검색 결과를 탐색한 결과 github의 기본 branch 이름이 main으로 바뀐 것이지 git의 기본 branch 이름이 바뀐 것이 아니라는 결론을 내렸다.

그래서 'git branch -M main'을 실행해 branch의 이름을 master에서 main으로 변경시켰다.

'git branch'를 실행하면 위와 같이 main이라고 정상적으로 출력된다.

아래는 VS Code의 확장 기능 중 하나인 'Git Graph'를 캡쳐한 것인데, main이라는 이름으로 바뀌었다.

main branch에 push

이제 push를 통해 원격 저장소에 'readme.txt'를 업로드하려 했는데 위처럼 오류가 발생했다. push하기 전에 'git pull ...'을 하라고 친절하게 쓰여 있다.

침착하게 'git pull origin main'을 써줬으나 'fatal: refusing to merge unrelated histories'라며 실패했다.

무슨 뜻인지 곱씹어 본다. 관련되지 않은 히스토리를 합치려고 해서 실패했다는 말인가? 모르겠어서 구글에 찾아봤는데 잘 안나온다. 다들 그냥 강제로 pull하는 명령어를 써서 해결했다.

슬슬 지쳐서 그냥 나도 같은 방법을 썼다. 나중에 다시 겪을 때 이해할지도 모르겠지. 아래의 명령어를 써준다.

git pull origin master --allow-unrelated-histories

allow unrelated histories라.. 딱 봐도 이 문제를 해결해줄 명령어라는 생각이 든다.

pull하는데 성공했다. 이제 push도 해준다.

성공했다. 그래프를 보면 아래와 같다.

음.. 뭔가..? 이름만 바꿨지 하나의 가지에서 작업했다고 생각했는데 그래프가 예상과 다르다. 내가 무슨 일을 한 것인지도 모르겠다. 아

github에 가보자.

와! 결과는 성공적이다. main에 아무 것도 없이 master에 들어가야 보였던 파일들이 정상적으로 업로드 되었다. 이제 master에 들어가야만 확인할 필요가 없어졌다. 하지만 어딘가 찜찜한것도 사실이다. ryan은 이 문제를 기억합니다..

0개의 댓글

Powered by GraphCDN, the GraphQL CDN