오늘은 Git에서 사용하는 기본 브랜치 이름인 main과 master의 차이, 그 배경, 그리고 실무에서 이를 어떻게 다뤄야 할지에 대해 이야기해보려고 한다.
예전에는 Git 저장소를 초기화하면 기본 브랜치가 항상 master였다. 하지만 최근 몇 년 동안 main이라는 이름이 새로운 표준으로 자리 잡았다.
'master'라는 용어는 과거의 특정 사회적, 문화적 맥락에서 논란의 여지가 있었다. 소프트웨어 커뮤니티는 더 inclusive(포괄적인)한 언어 사용을 지향하면서, 중립적이고 명확한 대안으로 main을 선택했다.
'master'는 저장소의 "중심이 되는 브랜치"를 나타내지만, 그 의미가 직관적이지 않다는 의견이 많았다. 반면, 'main'은 말 그대로 "주요 브랜치"를 의미하므로, 저장소의 핵심 브랜치라는 점을 더 명확히 전달한다.
GitHub와 GitLab 같은 플랫폼은 새로운 저장소를 생성할 때 기본 브랜치를 main으로 설정하고 있다. 이러한 플랫폼의 변화로 인해, main이 업계 표준으로 자리 잡아가고 있다.
기존 프로젝트에서 기본 브랜치를 master에서 main으로 변경하려면 몇 가지 단계를 거쳐야 한다.
-
로컬 브랜치 이름 변경
로컬 저장소에서 기본 브랜치 이름을 변경한다.git branch -m master main
-
변경된 브랜치 원격 저장소로 업로드
git push -u origin main
-
원격 저장소에서 기본 브랜치 변경
GitHub 저장소의 Settings > Branches 섹션에서 Default Branch를 main으로 변경한다. -
불필요한 브랜치 삭제
git push origin --delete master
-
CI/CD 및 문서 업데이트
파이프라인 설정, README 파일 등에 있는 master 브랜치 관련 내용을 main으로 변경한다.
새로운 프로젝트를 생성한다면, 별도의 설정 없이 기본 브랜치로 main을 사용하는 것이 권장된다. 이는 다른 개발자나 팀과의 협업에서도 표준화된 경험을 제공한다.
기존 프로젝트에서 master를 사용 중이라면, 변경 여부는 상황에 따라 다르다.
특히, CI/CD 파이프라인, 배포 스크립트, 자동화 작업 등이 master에 맞춰져 있다면, 이를 수정하는 데 드는 비용과 시간을 고려해야 한다.
-
팀원의 동의
브랜치 이름을 변경하는 것은 협업에 영향을 미칠 수 있다. 변경 이유와 절차를 충분히 설명하고, 팀원들과 합의하는 것이 중요하다. -
문서화 업데이트
프로젝트 문서에서 master를 언급한 부분을 모두 main으로 수정해야 한다. 특히, README.md와 CONTRIBUTING.md 같은 문서가 대상이 될 수 있다.
Git 브랜치 이름 변경은 단순한 작업처럼 보일 수 있지만, 개발 문화와 협업 방식의 변화와 깊은 관련이 있다. main과 master라는 이름의 차이는 결국 저장소 관리 방식에서 의미 있는 진화를 보여준다.
새로운 프로젝트에서는 main을 사용하는 것이 점점 더 보편화되고 있지만, 기존 프로젝트의 master 브랜치를 유지하는 것도 충분히 합리적인 선택이다.
가장 중요한 것은 이름의 변경보다, 브랜치를 어떻게 관리하고 협업을 효율적으로 이끌어가는가에 있다. 팀과의 논의를 통해 최적의 선택을 하고, Git 브랜치의 이름보다 더 중요한 협업과 코드 품질에 집중하자.