Contents/GitHub 사용법 공부

[Github] 05. Branch 브랜치란?

도엔 2025. 5. 12. 10:52
728x90

1. 기본 개념

  • 브랜치(Branch)코드의 독립적인 작업 공간
  • 기본적으로 Git 저장소는 main (또는 master)라는 기본 브랜치를 가진다.
  • 새로운 기능 개발, 버그 수정, 실험적 시도를 기존 코드와 분리하여 안전하게 진행하는 데 사용

_

2. 주요 특징

  • 독립성: 각 브랜치는 다른 브랜치의 영향을 받지 않고 독립적으로 수정 가능
  • 히스토리 관리: 각 브랜치는 개별 커밋 히스토리를 가짐
  • 협업 강화: 팀원 간 작업 분담 및 코드 검토에 유용

_

3. 주요 브랜치 생성 및 기본 흐름

  1. 기본 브랜치 (main)
    • 주로 배포, 릴리즈 등의 안정된 코드를 관리
    • 최종 제품 수준의 코드 보관
  2. 기능 브랜치 (feature)
    • 새로운 기능을 추가하거나, 특정 버그를 수정할 때 사용
    • 작업이 완료되면 main 브랜치로 병합(Merge)
  3. 핫픽스 브랜치 (hotfix)
    • 긴급 버그 수정 시 사용하는 브랜치
    • 배포된 코드에서 빠르게 수정해야 할 때 사용
  4. 개발 브랜치 (develop)
    • main에서 배포 전 코드를 관리하는 중간 단계
    • 여러 기능 브랜치의 병합 테스트 용도

_

4. 브랜치 유형 예시)

기능 추가 feature/user-auth
버그 수정 bugfix/login-error
긴급 수정 hotfix/security-patch
실험 코드 experiment/new-idea
문서 수정 docs/update-readme

 

_

5. 브랜치 생성 및 전환 방법 (Git 명령어)

# 1. 브랜치 생성
git branch feature/new-feature

# 2. 브랜치 전환
git checkout feature/new-feature

# 또는 생성과 전환을 동시에
git checkout -b feature/new-feature

# 3. 로컬 브랜치를 원격에 푸시
git push -u origin feature/new-feature

 

_

6. 브랜치 병합 (Merge)

  • Merge: 두 브랜치의 변경 내용을 병합
  • Rebase: 두 브랜치의 히스토리를 다시 쌓는 방법
# Merge 방법
git checkout main
git merge feature/new-feature

# Rebase 방법
git checkout feature/new-feature
git rebase main

 

_

7. 브랜치 삭제

  • 작업이 완료된 브랜치는 삭제하여 히스토리를 정리
# 로컬 브랜치 삭제
git branch -d feature/new-feature

# 원격 브랜치 삭제
git push origin --delete feature/new-feature

 

_

8. GitHub 웹에서 브랜치 관리

  • New Branch 버튼으로 브랜치 생성
  • PR(Pull Request)로 병합 요청
  • 병합 후 불필요한 브랜치 삭제 가능

_

9. 브랜치와 커밋 관계

  • Ahead/Behind 관계
    • 브랜치 간 커밋 수 차이를 나타내며, 동기화 상태를 보여줌
  • Fork와 Pull Request
    • 외부 기여자의 브랜치 병합 요청 시 사용

_

10. 브랜치 전략 (Branch Strategy)

> 전략 유형 특징

Git Flow 기능, 개발, 핫픽스 브랜치를 명확히 구분
GitHub Flow 간단한 main + feature 브랜치 구조
Trunk Based Dev 단일 브랜치를 중심으로 빠르게 배포

 

728x90
반응형