GitHub/GitHub Desktop

[Git] GitHub Branch 완벽 이해하기: 개념부터 활용까지

b-jm 2025. 9. 23. 13:05

1. Branch란 무엇일까?

Git을 처음 배우면 브런치(Branch)라는 단어가 낯설게 느껴지죠.

간단히 말하면 코드를 안전하게 실험할 수 있는 복사본이에요.

 

브랜치는 나무의 가지처럼,

하나의 프로젝트(main 줄기)에서 새로운 기능 개발, 수정, 테스트 등을

각자 따로 진행할 수 있게 도와줍니다.

 

즉, 여러 사람이 동시에 작업하더라도

서로의 코드가 뒤섞이지 않고 안전하게 관리되는 구조를 만드는 거예요.

 

 

2. 왜 브런치를 사용할까?

만약 브랜치가 없다면?

-> 모든 개발자가 하나의 main 코드에 직접 수정해야 한다.

-> 누군가의 실수로 전체 코드가 망가질 수도 있다.

 

그래서 보통 이렇게 작업합니다.

  • main : 완성된, 배포 가능한 코드
  • develop : 기능 개발이 이루어지는 중심 브랜치
  • feature/login, feature/signup : 세부 기능 단위의 브랜치

각자 필요한 기능을 feature 브랜치에서 개발하고,

완성되면 develop -> main 순서로 병합(Merge)해요.

 

 

3. 브랜치 기본 흐름 (예시)

예를 들어 "로그인 기능"을 추가한다고 해볼게요.

GitHub Desktop 실행

좌측 상단에서 원하는 저장소(Repository)를 선택합니다.

 

브랜치 메뉴 클릭

상단 메뉴에서 Branch -> New Branch... 선택

 

브랜치 이름 입력

브랜치 이름을 입력해줍니다.

예: feature/login

 

Create Branch 클릭

 

이제 새로운 브랜치가 생성되고, 자동으로 그 브랜치로 전환됩니다.

 

 

4. 브랜치 병합(Merge) 과정

GitHub에서는 보통 이렇게 병합합니다.

  1. Pull Request(PR) 생성
    • 어떤 브랜치의 변경을 어디로 합칠지 선택 (예: main <- develop)
  2. 코드 리뷰 진행
    • 팀원들이 변경 사항을 확인하고 피드백
  3. Merge 버튼 클릭
    • 최종적으로 브랜치가 하나로 합쳐집니다

이때 충돌(conflict)이 생길 수도 있는데,

이건 서로 같은 부분의 코드를 수정했을 때 발생해요.

충돌을 해결하고 다시 커밋하면 문제없이 병합할 수 있습니다.

 

5. 브랜치 명명 규칙 (Naming Convention)

일반적인 규칙

브랜치 유형 예시 설명
main main 최종 배포용 브랜치
develop develop 개발 단계 통합용
feature/ feature/login 새로운 기능 개발
fix/ fix/typo 버그 수정
hotfix/ hotfix/server-error 긴급 수정 (운영 중 오류)
release/ release/v1.0.0 배포 전 준비 브랜치

이런 식으로 이름만 봐도 "이 브랜치는 어떤 용도구나"를 바로 알 수 있게 하는 게 좋아요.

 

6. 브랜치를 쓰면 좋은 이유

상황 브랜치 덕분에 가능한 일
새로운 기능 실험 main에 영향 없이 자유롭게 테스트 가능
팀 프로젝트 각자 다른 기능을 동시에 개발 가능
버그 수정 안정 버전 유지하면서 문제 해결
코드 리뷰 변경 내역이 명확해져서 리뷰가 쉬움

 

브랜치는 Git을 효율적으로 쓰기 위한 핵심 개념이에요.
처음엔 복잡해 보이지만,
“메인 코드(main)를 지키면서 실험할 수 있는 복사본”
이라고 생각하면 이해가 훨씬 쉬워집니다.

 

작업할 때는 항상 새로운 브랜치를 만들어서 커밋 → 푸시 → PR → 머지
이 흐름만 기억하면 GitHub 협업도 훨씬 깔끔하게 정리됩니다.

 

코드 수정 후 Commit하는 자세한 방법은

아래 링크를 참고해주세요~

https://b-jm.tistory.com/4

 

[Git] 다시 정리하는 GitHub Commit 메시지

코드를 수정하거나 기능을 추가할 때 우리는 보통 커밋(Commit) 을 남기게 돼요.저도 처음에는 커밋이 뭔지 잘 몰라서, 그냥 "저장 버튼 같은 건가?" 싶어서 무심코 Commit 버튼만 꾹 눌렀던 기억이

b-jm.tistory.com