Skip to main content

Git 3.0이 기본 브랜치 이름을 “master”에서 “main”으로 바꾼 이유와 적용 방법

Published 3 min readMarkdown

# 서론 – “master”와 “main”, 왜 바뀌었을까?

Git을 처음 접하는 개발자라면 git init 명령을 실행했을 때 자동으로 생성되는 기본 브랜치 이름이 master라는 것을 익숙하게 기억하고 있을 것입니다. 하지만 2023년 말에 출시된 Git 3.0부터는 기본 브랜치 이름이 main으로 바뀌었습니다.

“Git 3.0 is using the default branch name of ‘main’ rather than the current default of ‘master’” 라는 Reddit 토론이 화제가 된 이유는, 기존에 master를 사용하던 수많은 레포지토리와 자동화 스크립트가 영향을 받을 수 있기 때문입니다.

이번 글에서는 Git 3.0이 기본 브랜치를 main으로 바꾼 배경, 실제 프로젝트에 적용하는 방법, 그리고 초보자가 겪을 수 있는 흔한 문제들을 쉽게 설명합니다.


# 본론

# 1️⃣ Git 3.0에서 기본 브랜치가 “main”으로 바뀐 배경

| 원인 | 설명 |

|------|------|

| 포용성(Inclusivity) 강화 | master는 역사적으로 노예제와 연관된 용어라는 비판이 있었고, 오픈소스 커뮤니티는 보다 중립적인 용어 사용을 권장했습니다. |

| 업계 표준화 | GitHub, GitLab, Bitbucket 등 주요 호스팅 서비스가 이미 2020년부터 기본 브랜치를 main으로 전환했으며, Git 자체도 이를 따라가야 할 필요가 있었습니다. |

| 자동화와 호환성 | 새로운 기본값을 공식화함으로써 앞으로 생성되는 레포지토리들이 일관된 브랜치 이름을 갖게 되어 CI/CD 파이프라인 설정이 간소화됩니다. |

SEO 키워드: Git 3.0, default branch, main vs master


# 2️⃣ 기존 레포지토리에서 “master” → “main” 전환하기

  1. 로컬 브랜치 이름 변경
bash

   git branch -m master main
  1. 원격 저장소에 새 브랜치 푸시
bash

   git push -u origin main
  1. 원격의 “master” 브랜치 삭제 (필요한 경우)
bash

   git push origin --delete master
  1. GitHub 등 호스팅 서비스에서 기본 브랜치 설정 변경

    • 레포지토리 Settings → Branches → Default branch에서 main 선택

Tip: CI/CD 설정 파일(.github/workflows/*.yml, Jenkinsfile 등)에서 master를 참조하고 있다면 main으로 수정해 주세요.


# 3️⃣ 새 프로젝트를 시작할 때 “main”을 기본으로 사용하기

  • Git 3.0 이상을 설치했는지 확인합니다. (git --version → 3.0.x 이상)

  • git init만 실행하면 자동으로 main 브랜치가 생성됩니다.

  • 기존에 master를 기본값으로 강제하고 싶다면 전역 설정을 바꿀 수 있습니다.

bash

  git config --global init.defaultBranch master

하지만 새로운 프로젝트라면 기본값을 그대로 두는 것이 향후 협업에 더 유리합니다.


# 4️⃣ 초보자가 흔히 겪는 오류와 해결책

| 오류 상황 | 원인 | 해결 방법 |

|-----------|------|-----------|

| fatal: ambiguous argument 'master': unknown revision or path not in the working tree. | 로컬에 master 브랜치가 없는데 git checkout master 실행 | git checkout main 혹은 git branch -m master main 수행 |

| CI 파이프라인이 빌드되지 않음 | CI 설정 파일에 master가 하드코딩 | CI 설정 파일 내 브랜치 이름을 main으로 교체 |

| Pull Request 템플릿이 master를 기준으로 작성 | 템플릿 파일에 고정된 브랜치명 사용 | 템플릿을 최신 브랜치명(main)에 맞게 업데이트 |


# 5️⃣ “main vs master” 논쟁, 실제 현업에서는 어떻게 받아들여야 할까?

  • 기술적인 차이는 없습니다. 두 이름은 단순히 브랜치 레퍼런스일 뿐이며, Git 내부 동작에는 영향을 주지 않습니다.

  • 팀 문화와 협업 도구가 일관성을 유지하는 것이 가장 중요합니다.

  • 새로운 팀원이 입사했을 때 “master”와 “main” 중 어느 것을 사용해야 하는지 명확히 안내하면 혼란을 최소화할 수 있습니다.


# 결론 – 지금 바로 “main” 브랜치를 경험해 보세요!

Git 3.0에서 기본 브랜치가 main으로 바뀐 것은 포용성과 표준화를 위한 자연스러운 흐름입니다. 기존 레포지토리를 main으로 전환하는 과정은 몇 가지 명령어만으로 충분히 해결할 수 있으며, 새 프로젝트를 시작할 때는 별다른 설정 없이 바로 main 브랜치를 사용할 수 있습니다.

행동 유도

  1. 아직 Git 3.0 이하를 사용 중이라면 최신 버전으로 업데이트하세요.

  2. 현재 진행 중인 레포지토리의 기본 브랜치를 main으로 바꾸고, CI/CD 설정을 점검해 보세요.

  3. 팀 위키나 문서에 “default branch” 용어를 main으로統一(통일)하여 새로운 협업 문화에 맞춰 주세요.

Git 3.0의 변화는 큰 충격이 아니라 앞으로의 개발 흐름을 더 깔끔하게 만들어 줄 하나의 작은 단계입니다. 지금 바로 적용해 보고, 더 나은 협업 환경을 경험해 보세요!

No comments yet. Be the first to comment.

More from this blog