1. Branch란 무엇일까?
Git을 처음 배우면 브런치(Branch)라는 단어가 낯설게 느껴지죠.
간단히 말하면 코드를 안전하게 실험할 수 있는 복사본이에요.
브랜치는 나무의 가지처럼,
하나의 프로젝트(main 줄기)에서 새로운 기능 개발, 수정, 테스트 등을
각자 따로 진행할 수 있게 도와줍니다.
즉, 여러 사람이 동시에 작업하더라도
서로의 코드가 뒤섞이지 않고 안전하게 관리되는 구조를 만드는 거예요.
2. 왜 브런치를 사용할까?
만약 브랜치가 없다면?
-> 모든 개발자가 하나의 main 코드에 직접 수정해야 한다.
-> 누군가의 실수로 전체 코드가 망가질 수도 있다.
그래서 보통 이렇게 작업합니다.
- main : 완성된, 배포 가능한 코드
- develop : 기능 개발이 이루어지는 중심 브랜치
- feature/login, feature/signup : 세부 기능 단위의 브랜치
각자 필요한 기능을 feature 브랜치에서 개발하고,
완성되면 develop -> main 순서로 병합(Merge)해요.
3. 브랜치 기본 흐름 (예시)
예를 들어 "로그인 기능"을 추가한다고 해볼게요.

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

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

브랜치 이름을 입력해줍니다.
예: feature/login
Create Branch 클릭

이제 새로운 브랜치가 생성되고, 자동으로 그 브랜치로 전환됩니다.
4. 브랜치 병합(Merge) 과정
GitHub에서는 보통 이렇게 병합합니다.
- Pull Request(PR) 생성
- 어떤 브랜치의 변경을 어디로 합칠지 선택 (예: main <- develop)
- 코드 리뷰 진행
- 팀원들이 변경 사항을 확인하고 피드백
- 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하는 자세한 방법은
아래 링크를 참고해주세요~
[Git] 다시 정리하는 GitHub Commit 메시지
코드를 수정하거나 기능을 추가할 때 우리는 보통 커밋(Commit) 을 남기게 돼요.저도 처음에는 커밋이 뭔지 잘 몰라서, 그냥 "저장 버튼 같은 건가?" 싶어서 무심코 Commit 버튼만 꾹 눌렀던 기억이
b-jm.tistory.com
'GitHub > GitHub Desktop' 카테고리의 다른 글
| [Git] 다시 정리하는 GitHub Commit 메시지 (0) | 2025.09.22 |
|---|---|
| [Git] GitHub Desktop 초보자 가이드: 설치부터 커밋까지 따라하기 (0) | 2025.09.20 |