Git

[Git] branch 이해하기

planting grass 2025. 3. 7. 10:11
728x90

branch란?

브랜치는 독립적인 개발을 위해 코드의 한 지점에서 나누어진 분기다.

브랜치를 이해하기 위해서는 아래 내용을 이해해야 한다.

  • 분기(branch): main, master 브랜치에서 새로운 브랜치를 만들어 독립적인 작업을 수행
  • 병합(merge): 작업이 완료된 브랜치를 main, master 브랜치에 다시 합쳐 변경 사항을 통합
  • 동시 작업: 여러 개발자가 동시에 다른 작업을 수행

코드 안정성: main, master 브랜치를 안정적으로 유지하면서 새로운 기능을 개발하거나 버그를 수정

위 그림을 보면 초록생 main, master 브랜치에서 가지마냥 여러 갈래로 뻗어나가는걸 확인할 수 있다.

이처럼 main에서 뻗어나가는게 브랜치라고 생각하면 된다.

branch의 목적

  • 기능 개발: 새로운 기능을 기존 코드에 영향을 주지 않고 개발할 수 있음.
  • 버그 수정: 긴급한 버그를 빠르게 수정하고 기존 코드와 병합할 수 있음.
  • 코드 리뷰 및 협업: 코드 변경 사항을 리뷰 후 병합할 수 있도록 함.
    • branch를 병합하려면 pull & request를 거쳐야 하기 때문에 더 나은 코드를 지향할 수 있음
  • 안정적인 코드 유지: main 브랜치는 항상 안정적으로 유지하고, 테스트가 끝난 코드만 병합함.

branch의 장점

  • 독립적인 개발이 가능
    • 여러 기능을 동시에 개발할 수 있어 개발 속도가 빨라짐.
  • 코드 충돌을 최소화
    • 들이 같은 파일을 수정하더라도 각자의 브랜치에서 작업하여 충돌 위험이 줄어듦.
  • 안정적인 코드 유지
    • main 브랜치에는 검증된 코드만 포함되므로, 코드 품질을 유지할 수 있음.
  • 롤백이 쉬움
    • 문제가 생긴 브랜치를 삭제하면 쉽게 원래 상태로 돌아갈 수 있음.
  • 협업이 용이함
    • GitHub, GitLab 등의 Pull Request(PR) 또는 Merge Request(MR) 기능을 활용해 리뷰를 진행할 수 있음.

브랜치 사용 시 주의할 점

  • 너무 많은 브랜치를 만들지 않기
    • 필요 이상으로 브랜치를 만들면 관리가 어려워짐.
  • 브랜치를 자주 병합(Merge)하기
    • 너무 오랜 기간 브랜치를 유지하면 main과 충돌이 심해질 수 있음.
    • git merge 또는 git rebase를 활용하여 주기적으로 최신 코드 반영 필요.
  • 의미 있는 브랜치 이름 사용하기
    • 직관적인 이름을 사용하면 협업이 편리해짐.

병합(Merge) 방식 선택하기

  • git merge: 기본적인 병합 방식 (히스토리가 남음)
  • git rebase: 깔끔한 히스토리를 유지할 때 사용 (브랜치 히스토리를 하나로 정리)

브랜치 삭제 관리

  • 작업이 끝난 브랜치는 git branch -d 브랜치이름으로 정리
  • 원격 브랜치 삭제는 git push origin --delete 브랜치이름

사용 예시

명령어 설명
git branch 현재 존재하는 브랜치 목록을 확인
git branch 브랜치이름 새로운 브랜치 생성
git checkout 브랜치이름 새로운 브랜치 생성 브랜치이름 해당 브랜치로 이동
git switch 브랜치이름 브랜치를 전환(Git 2.23 부터 사용 가능)
git branch -d 브랜치이름 브랜치를 삭제 (병합된 브랜치만 삭제 가능)
git branch -D 브랜치이름 강제 삭제 (병합되지 않은 브랜치도 삭제 가능)
728x90