[Git] Git Flow: 협업 프로젝트에서 브랜치 관리하는 방법
2024. 11. 22. 14:06ㆍTool/Git & Github
Git-flow란?
Git Flow는 협업 시 브랜치들을 효율적으로 관리하기 위한 전략 또는 방법론이다.
프로젝트 개발 과정에서 브랜치를 체계적으로 나눠 작업 흐름을 정리할 수 있다.
Git 저장소 개념
- 원격 저장소 (Remote Repository)
- 다른 개발자들과 코드를 공유할 수 있는 저장소이다.
- Upstream Repository: 팀에서 공유하는 주 저장소로, 최신 소스코드가 여기에 저장된다.
- Origin Repository: Upstream Repository를 복제(fork)하여 만든 개인용 원격 저장소이다다.
- 로컬 저장소 (Local Repository)
- 내 컴퓨터에 저장된 개인 저장소로, 원격 저장소와 동기화(sync)하여 작업한다.
Git Flow의 브랜치 구조
Git Flow에서는 작업의 역할에 따라 5가지 브랜치를 사용한다.
- Main 브랜치 (Master)
- 목적: 출시 가능한 상태의 코드만 저장
- 특징: 안정적인 버전의 코드가 기록되며, 버전을 tag로 관리한다.
- Develop 브랜치
- 목적: 다음 출시 버전을 개발
- 특징: 기능(feature) 브랜치와 버그 수정 작업이 병합된다.
- Feature 브랜치
- 목적: 새로운 기능 개발
- 특징: develop에서 분기하여 작업하며, 완료 후 다시 develop에 병합된다.
- Release 브랜치
- 목적: 배포 준비 및 QA
- 특징: develop에서 분기하며, 완료 후 main과 develop에 병합된다.
- Hotfix 브랜치
- 목적: 배포된 코드에서 긴급한 버그 수정
- 특징: main에서 분기하여 작업하며, 완료 후 main과 develop에 병합된다.
Git Flow 작업 방법
- Git 초기 설정
- 원격 저장소에서 프로젝트를 복제:
git clone [중앙 remote repository URL]
- 혹은 현재 디렉토리를 Git 저장소로 초기화:
git init git remote add origin [중앙 remote repository URL] git fetch origin master
- Develop 브랜치 생성
- 팀원 중 한 명이 develop 브랜치를 만들고, 원격 저장소에 업로드합니다:
git branch develop git push -u origin develop
- 팀원 중 한 명이 develop 브랜치를 만들고, 원격 저장소에 업로드합니다:
- Feature 브랜치 작업
- 새로운 기능 개발을 위해 브랜치를 생성:
git checkout -b feature/login develop
- 작업 완료 후 develop에 병합:
git add . git commit -m "Add login feature" git push origin feature/login
- 새로운 기능 개발을 위해 브랜치를 생성:
- Release 브랜치 생성 및 QA
- QA를 시작하기 위해 release 브랜치 생성:
git checkout -b release-1.0.0 develop git push origin release-1.0.0
- QA 완료 후 master와 develop에 병합:
git checkout master git merge --no-ff release-1.0.0 git push origin master
- QA를 시작하기 위해 release 브랜치 생성:
- Hotfix 브랜치 작업
- 긴급 버그 수정을 위해 hotfix 브랜치 생성:
git checkout -b hotfix-1.2.1 master
- 작업 완료 후 master와 develop에 병합:
git checkout master git merge --no-ff hotfix-1.2.1 git push origin master
- 긴급 버그 수정을 위해 hotfix 브랜치 생성:
Git Flow 사용 시 주의점
- 브랜치 명명 규칙을 팀원들과 미리 정해야 한다.(혼란 방지)
- 작업이 끝난 브랜치는 삭제(clean up)하여 관리해야 한다.
git branch -d feature/login git push origin --delete feature/login
- CI/CD 파이프라인과 연계하면 배포 및 테스트가 더 수월해진다.
'Tool > Git & Github' 카테고리의 다른 글
[Git] git flow에서 브랜치 시각화하기 (0) | 2024.11.22 |
---|---|
[Git] Git flow 세팅 방법 (1) | 2024.11.22 |