포스트

[GitHub 100일 챌린지] Day 42 - 브랜치 생성하기

[GitHub 100일 챌린지] Day 42 - 브랜치 생성하기

100일 챌린지 Day 42 - git branch 명령어로 새로운 브랜치를 생성합니다.

배울 내용

  1. git branch 기본 사용법
  2. 브랜치 생성 옵션
  3. 브랜치 생성 실전 예제

Topic1. git branch 기본 사용법

git branch는 브랜치를 생성하고 관리하는 명령어입니다.

브랜치 목록 확인

현재 브랜치 확인:

1
2
3
4
git branch

# 출력 예시
* main

별표(*)는 현재 작업 중인 브랜치를 나타냅니다.

모든 브랜치 보기:

1
2
3
4
5
6
7
git branch -a

# 출력 예시
* main
  develop
  remotes/origin/main
  remotes/origin/develop

새 브랜치 생성

기본 생성 방법:

1
2
3
4
5
6
7
8
git branch feature/login

# 확인
git branch

# 출력
  feature/login
* main

생성 후에도 현재 브랜치는 main입니다.

해보기: 첫 브랜치 생성

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 새 저장소 초기화
mkdir git-branch-practice
cd git-branch-practice
git init

# 첫 커밋
echo "# My Project" > README.md
git add README.md
git commit -m "Initial commit"

# 새 브랜치 생성
git branch feature/user-auth

# 확인
git branch -v

# 출력:
  feature/user-auth a1b2c3d Initial commit
* main              a1b2c3d Initial commit

결과

1
2
3
✅ feature/user-auth 브랜치 생성됨
✅ 두 브랜치 모두 같은 커밋을 가리킴
✅ 현재 브랜치는 여전히 main

Topic2. 브랜치 생성 옵션

다양한 브랜치 생성 방법과 옵션을 알아봅니다.

특정 커밋에서 브랜치 생성

1
2
3
4
5
# 커밋 히스토리 확인
git log --oneline

# 특정 커밋에서 브랜치 생성
git branch hotfix/bug-fix a1b2c3d

브랜치 생성과 동시에 전환

1
2
3
4
5
# 생성 + 전환 동시에
git checkout -b feature/payment

# 최신 Git에서는
git switch -c feature/notification

브랜치 명명 규칙

1
2
3
4
5
6
7
8
9
10
11
# 기능 개발
git branch feature/user-profile

# 버그 수정
git branch bugfix/login-error

# 긴급 수정
git branch hotfix/security-patch

# 릴리스
git branch release/v1.2.0

해보기: 다양한 방법으로 브랜치 생성

1
2
3
4
5
6
7
8
9
10
11
12
13
# 1. 기본 브랜치 생성
git branch feature/dashboard

# 2. 생성 + 전환
git checkout -b feature/profile

# 프로필 작업
echo "Profile page" > profile.html
git add profile.html
git commit -m "Add profile page"

# 3. 브랜치 상태 확인
git log --oneline --all --graph

결과

생성된 브랜치들:

1
2
3
4
5
6
git branch -v

# 출력:
  feature/dashboard  a1b2c3d Initial commit
* feature/profile    d4e5f6g Add profile page
  main               a1b2c3d Initial commit

Topic3. 브랜치 생성 실전 예제

실무 시나리오에서 브랜치 생성 전략입니다.

시나리오 1: 신규 기능 개발 시작

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 1. 최신 main으로 업데이트
git checkout main
git pull origin main

# 2. feature 브랜치 생성 + 전환
git checkout -b feature/login-system

# 3. 개발 시작
touch login.html login.js
git add .
git commit -m "feat: Initialize login system structure"

# 4. GitHub에 푸시
git push -u origin feature/login-system

시나리오 2: 긴급 버그 수정

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 1. main에서 즉시 hotfix 브랜치 생성
git checkout main
git checkout -b hotfix/critical-bug

# 2. 빠르게 수정
git add auth.js
git commit -m "hotfix: Fix security vulnerability"

# 3. main에 즉시 병합
git checkout main
git merge hotfix/critical-bug

# 4. 배포 및 태그
git tag v1.0.1
git push origin main --tags

시나리오 3: Git Flow 전략 적용

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 1. develop 브랜치 생성
git checkout -b develop

# 2. 기능 개발
git checkout -b feature/shopping-cart

echo "Shopping cart" > cart.js
git add cart.js
git commit -m "feat: Add shopping cart"

# 3. develop에 병합
git checkout develop
git merge feature/shopping-cart

# 4. 릴리스 준비
git checkout -b release/v1.0

echo "1.0.0" > VERSION
git add VERSION
git commit -m "chore: Version 1.0.0"

# 5. main에 병합 및 태그
git checkout main
git merge release/v1.0
git tag v1.0.0

해보기: 완전한 브랜치 워크플로우

gitGraph
    commit id: "Initial"
    branch develop
    checkout develop
    branch feature/cart
    checkout feature/cart
    commit id: "Add cart"
    checkout develop
    merge feature/cart
    branch release/v1.0
    checkout release/v1.0
    commit id: "v1.0.0"
    checkout main
    merge release/v1.0 tag: "v1.0.0"

결과

브랜치 전략의 장점:

1
2
3
4
5
✅ main: 항상 배포 가능
✅ develop: 다음 릴리스 개발
✅ feature/*: 독립적 기능 개발
✅ release/*: 릴리스 준비
✅ hotfix/*: 긴급 수정

정리

오늘 배운 내용:

1. git branch 기본:

1
2
3
4
git branch              # 브랜치 목록
git branch [이름]       # 브랜치 생성
git branch -v          # 상세 정보
git branch -a          # 모든 브랜치

2. 브랜치 생성 옵션:

1
2
3
git branch [이름] [커밋]         # 특정 커밋에서
git checkout -b [이름]           # 생성 + 전환
git switch -c [이름]             # 최신 방식

3. 브랜치 명명 규칙:

1
2
3
4
feature/기능명    # 새 기능
bugfix/버그명     # 버그 수정
hotfix/긴급수정   # 긴급 패치
release/버전      # 릴리스

완료 체크:

  • git branch 명령어를 사용할 수 있다
  • 브랜치 생성 옵션들을 이해했다
  • 실무 브랜치 전략을 적용할 수 있다

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.