
앞서 git branch에 대하여 가볍게 알아보았습니다
가장 중요한 포인트는 협업에서의 사용이었는데요
그렇다면 branch 사용법에 대하여 알아보아야겠죠?
branch를 생성하는 방법은 두 가지가 있습니다
git checkout
git switch
git checkout
git checkout -b <branch명>
이전부터 사용되었던 방법인 checkout 입니다
-b 는 branch의 약자에요
의미는
새 branch를 생성하고 그 branch로 바로 이동한다
즉,
git branch <branch명>
git checkout <branch명>
이 두 명령어를 합친 형태입니다
git switch
git switch -c <branch명>
비교적 최신의 방법인 switch입니다
-c 는 create의 약자에요
의미는 동일하게
새 branch를 생성하고 그 branch로 바로 이동한다
Git 2.23 이후 등장한 브랜치 전환 전용 명령어입니다
같은 기능을 수행하니 마음에 드시는거 쓰셔도 됩니다
협업에서 사용하는 만큼 이제 이 branch를 어떻게 사용할 것인가에 대한 여러 방법들이 있는데요 이것들을 Git flow라고 합니다.
즉,
브랜치를 어떤 규칙으로 만들고,
어떻게 합치고,
어떤 역할을 부여할 것인가에 대한 협업 규칙
으로 협업을 유연하게 해주는 branch 전략입니다

가장 널리알려진 git flow인 Classic Git Flow 다이어그램입니다
이걸 대표 예시로 설명을 진행해볼게요
우선, 크게 5가지의 branch로 진행됩니다
master, develop, feature, release, hotfix
각 branch들의 역할에 대해 가볍게 소개해볼게요
master branch는 실제 서비스가 사용되는 브렌치로 직접적인 수정을 가하지는 않는다가 중요합니다
다 완성된 코드만 올리는 것이죠
❗하지만!! 2020년대부터는 master 라는 명칭보다 main을 사용하고있습니다
이유는
master/slave가 가지는 역사적, 사회적 민감성 문제- 더 포괄적이고 중립적인 용어 사용 흐름
- 글로벌 오픈소스 커뮤니티의 변화
등이 있습니다
그러니 우리는 main을 master대신 사용하면 되겠죠?
다수 개발자들의 코드를 합쳐 테스트하는 branch
각 개발자들의 기능 개발을 위한 branch로 develop branch로부터 분기하여 개발하며 완료 후 develop 브랜치로 merge
develop 브랜치의 내용을 master 브랜치로 배포하기 전 최종 수정을 위한 브랜치로 마지막 수정 사항 반영하며 완료 후 master와 develop 브랜치로 merge
master 브랜치 코드로 서비스 진행 중 문제 발생 시 hotfix를 위해 만드는 브랜치로 버그 수정 후 master와 develop 브랜치로 merge
정리해보면
- main branch는 최종 서비스 되고 있는 코드들이 묶여있는 branch
- develop은 개발 된 코드들이 합쳐져 최종 test를 하는 branch
- feature은 개발자들이 각 기능을 개발할 때 사용하는 branch
- release는 배포 전 최종 수정을 하는 branch
- hotfix는 main에서 이슈가 생겼을 경우 수정하는 branch
입니다