Git 3.0에서는 기본 브랜치로 main을 사용합니다
(thoughtbot.com)-
Git 3.0부터 새 저장소 생성 시 기본 브랜치가 자동으로
main으로 설정됨 - 이번 변경은 Git 2.52 패치 노트에 명시된 내용으로, Git 3.0부터
git init명령이 ‘master’ 대신 ‘main’을 사용함 - Software Freedom Conservancy가 2020년 6월 기본 브랜치명 변경 계획을 발표했고, GitHub은 같은 해 10월부터 이를 적용함
- Git 3.0은 아직 출시일이 정해지지 않았으며, 2026년 말경 공개될 것으로 추정됨
- 새 버전에는 SHA-256 해시 전환, 저장 형식 개선, Rust 통합 빌드 프로세스 등 주요 변경이 포함됨
Git 3.0의 기본 브랜치 변경
- Git 3.0부터 새 저장소를 생성할 때 기본 브랜치가 ‘main’ 으로 자동 설정됨
- 사용자는 더 이상 기본 브랜치를 수동으로 지정할 필요 없음
- Git 2.52 패치 노트에는 “Git 3.0부터
git init명령이 ‘master’ 대신 ‘main’을 초기 브랜치로 사용한다”는 문구가 포함됨 - 이 변경은 Git 프로젝트의 공식 방향 전환으로, 기존 ‘master’ 명칭을 대체함
배경 및 관련 동향
- Software Freedom Conservancy는 2020년 6월 23일, Git의 기본 브랜치명을 변경할 계획을 발표함
- GitHub은 같은 해 10월 1일부터 새 저장소의 기본 브랜치를 ‘main’으로 전환함
- 이러한 변화는 Git 생태계 전반에서 표준화된 브랜치명 사용으로 이어짐
Git 3.0의 출시 일정
- Git 3.0의 공식 출시일은 아직 확정되지 않음
- Phoronix의 보도에 따르면, 2026년 말경 출시될 것으로 예상됨
Git 3.0의 주요 기술적 변경 사항
- 기본 해시 함수가 SHA-1에서 SHA-256으로 변경되어 보안성이 강화됨
- 저장 형식이 개선되어 macOS와 Windows 환경에서의 성능 및 호환성이 향상됨
- Rust 언어가 Git 빌드 프로세스에 공식 통합되어 코드 품질과 유지보수성이 향상될 예정임
Hacker News 의견
-
솔직히 개인적으로는 신경 쓰지 않지만, 이제 “master”는 사실상 끝났음
- 일부 시니어 개발자들도 이름 변경을 원했음
- 어쨌든 “main”이 기본으로 자리 잡았고, 이제 그냥 넘어갈 때임
- 어떤 사람들은 이 변화가 엔지니어링 리소스 낭비라고 생각했음
- 영화 업계에서 “mastering”이라는 용어를 여전히 쓰는데, 바꿀 이유가 없다고 주장함
- 이런 단어 검열이 사회적 분열을 키운다고 봄
- 다른 사람은 단순히 기본값 문제일 뿐이라고 말함
- 여전히
init.defaultBranch = master로 설정 가능함 - “master”라는 단어가 멋지고, “main”은 의미가 빈약하다고 느낌
- 여전히
- 또 어떤 사람은 이름 자체엔 관심 없고, 일관성만 있으면 된다고 함
- GitHub가 기본 브랜치를 바꾼 뒤 스크립트가 깨져서 잠시 불편했지만 지금은 해결됨
- 한 명은 간단히
git config --global init.defaultBranch master명령어로 이 논란을 무시할 수 있다고 조언함
-
“master”가 기본 브랜치였는데 왜 3.0에서 바뀌었는지 궁금함
- 미국의 노예제 역사 때문이라면, 전 세계가 그 문제를 떠안는 게 이상하다고 느낌
- 이런 식의 과도한 언어 정화가 어디까지 갈지 우려함
- 이에 대한 답변으로, Git이 BitKeeper의 master/slave 구조에서 이름을 가져왔다는 설명이 있음
- Git은 “slave branch” 개념을 그대로 쓰진 않았지만, 용어 유래는 남아 있었음
- 또한 노예제는 미국만의 문제가 아니라 전 세계적 현상이었다는 의견도 제시됨
-
나는 기본 브랜치를
develop으로 두고, 이후release로 분기하는 방식을 선호함- “중앙 브랜치” 개념은 Git 구조상 맞지 않다고 느낌
- 논쟁이 커질수록 생산적인 토론이 필요하다는 HN 가이드라인을 상기시킴
- 누군가는 예전에 SVN에서 기본 브랜치가
trunk였다고 회상함 - 또 다른 사람은 활성 저장소에서는 “master” 같은 마법 같은 브랜치보다 명시적인 이름이 낫다고 동의함
- Git에는 여러 버전 관리 방식이 있으니, 한 가지가 정답은 아니라고 덧붙임
-
“man” 명령어도 비포용적이라며 회사에서 문제 삼는다는 농담이 나옴
- 이에 “man”은 원래 성중립적 어원이라는 설명이 이어짐
- 또 어떤 사람은 이런 논의가 맥락 인식 부족에서 비롯된다고 지적함
- 누군가는 “hash”도 마약 연상 때문에 금지해야 하냐며 풍자함
- “그런 아이디어 주지 말자”는 반응도 있었음
- 반면 “비용도 안 들고 사람들을 기분 좋게 한다면 왜 반대하냐”는 온건한 의견도 있었음
-
“Scrum Master”는 왜 바뀌지 않았냐는 질문이 나옴
- 누군가는 농담으로 “Scrum Main”이라 부르겠다고 함
- 다른 사람은 Scrum Master는 master/slave 개념에서 유래하지 않았기 때문이라고 설명함
- 어떤 회사는 대신 “Agile Champion”이라는 명칭을 쓴다고 함
- 또 다른 사람은 “그럼 석사 학위(MSc)도 바꿔야 하냐”고 농담함
-
어떤 사람은 이런 변화가 정치적 이념에 굴복한 행위라고 비판함
- 이에 “그냥 친절하려는 시도일 수도 있다, 모든 게 전쟁은 아니다”라는 반응이 달림
-
Mercurial은 처음부터 기본 브랜치 이름이 “default”였다고 언급함
-
“master”는 Git의 분산 구조와 맞지 않는 잘못된 용어라며, 기술적으로도 바꾸는 게 옳다고 주장함
-
“가장 불관용적인 사람이 또 이겼다”며 “master”를 계속 쓰겠다는 사람도 있었음
-
자신이 만든 프로젝트에서는 기본 브랜치를 항상 “develop”으로 두고, 이제 이 논쟁은 끝났으면 좋겠다고 함