[git] Git branch 관리 및 명령어

0

git

목록 보기
1/3

Git branch 관리란?

Git Branch를 관리하는 방법은 여러 가지가 있지만, 가장 많이 사용되는 방법으로는 Git Flow 전략이 있습니다.

Git Flow 전략은 크게 두 가지 브랜치인 master(main)와 develop 브랜치가 있습니다.

master(main) 브랜치는 실제로 출시되는 브랜치입니다. 따라서 이 브랜치는 언제나 안정적인 상태를 유지하고 있어야 합니다.

develop 브랜치는 개발 브랜치입니다. 개발자들은 이 브랜치에서 자신이 개발한 기능들을 병합하고, 다른 개발자들과의 협업을 위해 이 브랜치에서 개발을 진행합니다.

feature 브랜치는 개발자들이 새로운 기능을 추가하거나 버그를 수정할 때 사용하는 브랜치입니다. develop 브랜치에서 feature 브랜치를 분기해 작업하고, 작업이 완료되면 develop 브랜치로 병합합니다.

release 브랜치는 출시할 버전을 준비하는 브랜치입니다. develop 브랜치에서 release 브랜치를 분기하고, QA를 통해 검증한 뒤 master(main)와 develop 브랜치로 병합합니다.

hotfix 브랜치는 master 브랜치에서 발생한 긴급한 버그를 수정하기 위한 브랜치입니다. master(main) 브랜치에서 hotfix 브랜치를 분기해 작업하고, 작업이 완료되면 master(main)와 develop 브랜치로 병합합니다.

이와 같은 Git Flow 전략을 사용하면, 개발자들은 각자의 브랜치에서 자유롭게 개발을 진행할 수 있고, 출시할 버전의 준비와 긴급한 버그 수정 등을 위한 브랜치도 확실하게 구분할 수 있습니다.

혼자서 작은 규모의 애플리케이션을 만드는 경우에는 master(main), develop, feature 브랜치 정도만 사용해도 충분합니다.


Git branch 관리의 장점은?

Git branch를 분기해서 관리 및 개발하는 것은 여러 가지 장점이 있습니다.

안전한 실험 공간: 새로운 기능을 추가하거나 버그를 수정하는 등의 작업을 feature 브랜치에서 수행하면 master(main) 브랜치와 develop 브랜치에 영향을 주지 않습니다. 즉, 실험 공간을 마련해서 실패할 수 있는 여지가 있는 작업을 안전하게 수행할 수 있습니다.

팀 협업의 용이성: 여러명이 하나의 프로젝트를 개발할 때, 모두가 같은 브랜치를 사용하면 충돌이 발생할 가능성이 높아집니다. 그러나 각자 자신의 feature 브랜치를 가지면 개발자들이 동시에 작업할 수 있으며, 최종적으로 develop 브랜치로 병합할 때 충돌을 최소화할 수 있습니다.

코드 리뷰와 품질 향상: feature 브랜치에서 개발한 코드는 코드 리뷰를 거쳐 develop 브랜치로 병합됩니다. 이를 통해 팀 내에서 코드 품질을 향상시키고 개발 과정에서 발생할 수 있는 버그를 최소화할 수 있습니다.

배포 관리의 용이성: feature 브랜치에서 개발된 코드는 develop 브랜치로 병합된 후, master(main) 브랜치로 병합됩니다. 이를 통해 개발된 코드가 배포 가능한 상태인지 확인할 수 있습니다.

이러한 이유로 Git branch를 분기해서 개발하는 것은 효율적이고 안정적인 프로젝트 개발 방식 중 하나입니다.


Git branch 명령어

// develop 브랜치 생성 및 이동하기
git branch develop // develop branch 생성
git checkout develop // develop branch 이동
혹은
git checkout -b develop // 한번에 develop branch 생성 및 이동
// (현재 develop branch에 checkout 된 상태)
// develop 브랜치에서 feature/기능명 브랜치 분기하기 // 분기: 하나의 브랜치에서 새로운 브랜치를 파생해 나가는 것을 의미합니다.
git branch feature/기능명 // feature/기능명 branch 생성
git checkout feature/기능명 // feature/기능명 branch 이동
혹은
git checkout -b develop // 한번에 feature/기능명 branch 생성 및 이동
// (feature/기능명 branch에서 기능 개발 완료 후)
// feature/기능명 branch를 develop branch에 merge(합병)하기
git checkout develop // develop branch로 이동
git merge feature/기능명 // feature/기능명 branch를 develop branch로 merge(합병)
profile
지치지 않는 백엔드 개발자 김성주입니다 :)

0개의 댓글