# Git 3.0에서는 기본 브랜치로 main을 사용합니다

> Clean Markdown view of GeekNews topic #24651. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=24651](https://news.hada.io/topic?id=24651)
- GeekNews Markdown: [https://news.hada.io/topic/24651.md](https://news.hada.io/topic/24651.md)
- Type: news
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-11-27T09:46:01+09:00
- Updated: 2025-11-27T09:46:01+09:00
- Original source: [thoughtbot.com](https://thoughtbot.com/blog/git-3-0-will-use-main-as-the-default-branch)
- Points: 19
- Comments: 13

## Summary

**Git 3.0**에서는 새 저장소의 기본 브랜치가 드디어 **`main`** 으로 전환됩니다. 2020년부터 이어진 커뮤니티의 논의가 공식 릴리스에 반영된 셈이죠. 이번 버전은 단순한 명칭 변경을 넘어 **SHA-256 해시 전환**, **저장 형식 개선**, **Rust 기반 빌드 통합** 등으로 Git의 보안성과 구조적 완성도를 한 단계 끌어올립니다.

## Topic Body

- **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의 기본 브랜치명을 변경할 계획을 발표](https://sfconservancy.org/news/2020/jun/23/gitbranchname/)함  
- **GitHub**은 [같은 해 10월 1일부터 새 저장소의 기본 브랜치를 ‘main’으로 전환](https://github.com/github/renaming)함  
- 이러한 변화는 Git 생태계 전반에서 **표준화된 브랜치명 사용**으로 이어짐  
  
### Git 3.0의 출시 일정  
- Git 3.0의 공식 출시일은 아직 확정되지 않음  
- **Phoronix**의 보도에 따르면, [2026년 말경 출시될 것으로 예상](https://www.phoronix.com/news/Git-3.0-Release-Talk-2026)됨  
  
### [Git 3.0의 주요 기술적 변경 사항](https://git-scm.com/docs/BreakingChanges.html)  
- 기본 **해시 함수가 SHA-1에서 SHA-256으로 변경**되어 보안성이 강화됨  
- **저장 형식이 개선**되어 macOS와 Windows 환경에서의 성능 및 호환성이 향상됨  
- **Rust 언어가 Git 빌드 프로세스에 공식 통합**되어 코드 품질과 유지보수성이 향상될 예정임

## Comments



### Comment 46882

- Author: dalinaum
- Created: 2025-11-27T21:09:40+09:00
- Points: 3

올바른 결정이네요.

### Comment 46870

- Author: hpark
- Created: 2025-11-27T15:03:23+09:00
- Points: 4

시대에 맞는 변화인 거 같습니다.

### Comment 46859

- Author: lazyhack
- Created: 2025-11-27T10:43:01+09:00
- Points: 3

닭볶음탕 IT버전

### Comment 46897

- Author: sudosudo
- Created: 2025-11-28T08:26:02+09:00
- Points: 2

좋은 결정 인듯 합니다

### Comment 46875

- Author: joyfui
- Created: 2025-11-27T16:25:52+09:00
- Points: 2

솔직히 이유는 어처구니 없다고 생각하지만 아무튼 6글자에서 4글자로 바뀌었다는 사소한 이유로 환영합니다.

### Comment 46873

- Author: 3ae3ae
- Created: 2025-11-27T16:11:52+09:00
- Points: 1

pc적 논쟁이랑 별개로, 깃허브랑 통일된건 잘된 일이네요  
깃허브가 main에서 master로 돌아갈 일은 없을테니...

### Comment 46872

- Author: vndk2234
- Created: 2025-11-27T15:35:46+09:00
- Points: 2

이런식이면 orphan은 어떡하라고...

### Comment 46913

- Author: t7vonn
- Created: 2025-11-28T10:12:46+09:00
- Points: 2
- Parent comment: 46872
- Depth: 1

git 4.0출시 - orphan 대신 parentally-independent 라는 용어를 사용합니다

### Comment 46944

- Author: dongho42
- Created: 2025-11-28T22:52:48+09:00
- Points: 1
- Parent comment: 46913
- Depth: 2

🤣

### Comment 46867

- Author: wedding
- Created: 2025-11-27T14:02:03+09:00
- Points: 1

man도 불편하니 doc으로 바꿉시다라고 드립치려고 했는데 HN에 이미 달렸네요 ㅋ

### Comment 46866

- Author: aqqnucs
- Created: 2025-11-27T13:46:49+09:00
- Points: 2

정말 쓸데없는걸로 에너지 낭비하네요.

### Comment 46864

- Author: skageektp
- Created: 2025-11-27T13:11:54+09:00
- Points: 2

노예제가 있었던 사실이랑, master slave랑 뭔상관이야

### Comment 46855

- Author: neo
- Created: 2025-11-27T09:47:01+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=46031025)   
- 솔직히 개인적으로는 신경 쓰지 않지만, 이제 “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”으로 두고, 이제 이 논쟁은 끝났으면 좋겠다고 함
