[GitHub 100일 챌린지] Day 43 - 브랜치 이동하기
[GitHub 100일 챌린지] Day 43 - 브랜치 이동하기
100일 챌린지 Day 43 - git checkout과 git switch로 브랜치를 이동합니다.
배울 내용
- git checkout으로 브랜치 전환
- git switch 새로운 방식
- 브랜치 전환 시 주의사항
Topic1. git checkout으로 브랜치 전환
git checkout은 브랜치 간 이동을 위한 전통적인 명령어입니다.
기본 사용법
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 브랜치 목록 확인
git branch
# 출력:
* main
feature/login
develop
# 브랜치 전환
git checkout feature/login
# 확인
git branch
# 출력:
main
* feature/login
develop
작업 디렉토리 변화
브랜치 전환 시 파일 변경:
1
2
3
4
5
6
7
8
9
# main 브랜치에서
git checkout main
ls
# 출력: README.md index.html
# feature 브랜치로 전환
git checkout feature/login
ls
# 출력: README.md index.html login.html (login.html 추가됨!)
해보기: 브랜치 전환 실습
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
26
27
# 저장소 준비
mkdir branch-switch-test
cd branch-switch-test
git init
# main에서 작업
echo "Main branch" > main.txt
git add main.txt
git commit -m "Add main.txt"
# 새 브랜치 생성 및 전환
git checkout -b feature/test
# feature 브랜치에서 작업
echo "Feature branch" > feature.txt
git add feature.txt
git commit -m "Add feature.txt"
# main으로 돌아가기
git checkout main
ls
# 출력: main.txt (feature.txt 없음!)
# 다시 feature로
git checkout feature/test
ls
# 출력: main.txt feature.txt (둘 다 있음!)
결과
1
2
3
✅ 브랜치 전환으로 파일 구성 변경됨
✅ 각 브랜치는 독립적인 작업 공간
✅ 커밋된 내용만 브랜치별로 유지
Topic2. git switch 새로운 방식
Git 2.23+ 버전의 현대적인 브랜치 전환 명령어입니다.
git switch 기본 사용
1
2
3
4
5
6
7
8
# 브랜치 전환
git switch feature/login
# 브랜치 생성 + 전환
git switch -c feature/payment
# 이전 브랜치로 돌아가기
git switch -
checkout vs switch 비교
git checkout의 문제점:
1
2
3
4
5
6
7
8
# 브랜치 전환
git checkout feature/login
# 파일 복원 (혼란스러움!)
git checkout -- file.txt
# 새 브랜치 생성 + 전환
git checkout -b feature/payment
git switch로 명확하게:
1
2
3
4
5
6
7
8
# 브랜치 전환 (switch)
git switch feature/login
# 파일 복원 (restore)
git restore file.txt
# 새 브랜치 생성 + 전환 (switch -c)
git switch -c feature/payment
해보기: switch vs checkout 비교
1
2
3
4
5
6
7
8
9
10
11
12
13
# 전통적 방식
git checkout main
git checkout -b feature/new-feature
git checkout develop
# 현대적 방식
git switch main
git switch -c feature/new-feature
git switch develop
# 이전 브랜치로 빠르게 돌아가기
git switch -
git switch -
결과
switch의 장점:
1
2
3
4
✅ 명령어 목적이 명확함
✅ 브랜치 전환에만 집중
✅ 실수 가능성 감소
✅ 더 직관적인 옵션
Topic3. 브랜치 전환 시 주의사항
브랜치 전환 전 확인해야 할 사항들입니다.
미커밋 변경사항 주의
커밋하지 않은 변경사항이 있으면?:
1
2
3
4
5
6
7
8
9
10
11
12
# feature 브랜치에서 작업
git checkout feature/test
echo "Work in progress" > wip.txt
git add wip.txt
# (커밋 안 함!)
# main으로 전환 시도
git checkout main
# 에러 발생!
error: Your local changes would be overwritten by checkout
Please commit your changes or stash them
해결 방법 1: 커밋하기:
1
2
3
git add .
git commit -m "WIP: Temporary commit"
git checkout main
해결 방법 2: Stash 사용:
1
2
3
4
5
git stash
git checkout main
# 나중에 다시 돌아와서
git checkout feature/test
git stash pop
충돌 발생 시나리오
파일 충돌 예방:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# main에서 파일 수정
git checkout main
echo "Main version" > shared.txt
git add shared.txt
git commit -m "Update shared.txt in main"
# feature에서도 같은 파일 수정
git checkout feature/test
echo "Feature version" > shared.txt
git add shared.txt
git commit -m "Update shared.txt in feature"
# 이제 두 브랜치는 같은 파일의 다른 버전을 가짐
# 병합 시 충돌 발생 가능!
해보기: 안전한 브랜치 전환
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 1. 항상 상태 확인
git status
# 출력:
On branch feature/test
Changes not staged for commit:
modified: index.html
# 2. 변경사항 처리
# 옵션 A: 커밋
git add .
git commit -m "Complete feature"
# 옵션 B: Stash
git stash save "WIP: feature work"
# 3. 이제 안전하게 전환
git checkout main
# 4. 작업 완료 후 돌아오기
git checkout feature/test
# Stash했다면 복원
git stash pop
강제 전환 (위험!)
1
2
3
4
5
6
7
# 변경사항 버리고 강제 전환
git checkout -f main
# 또는
git switch --discard-changes main
# ⚠️ 경고: 커밋하지 않은 모든 변경사항 손실!
결과
안전한 브랜치 전환 체크리스트:
1
2
3
4
5
✅ git status로 현재 상태 확인
✅ 변경사항을 커밋 또는 stash
✅ 클린 상태에서 브랜치 전환
✅ 충돌 가능성 인지
❌ 강제 전환(-f) 사용 자제
전환 전 확인사항:
- 미커밋 변경사항 없는지 확인
- Untracked 파일 처리
- 충돌 가능성 검토
정리
오늘 배운 내용:
1. git checkout:
1
2
3
git checkout [브랜치] # 브랜치 전환
git checkout -b [브랜치] # 생성 + 전환
git checkout - # 이전 브랜치로
2. git switch (추천):
1
2
3
git switch [브랜치] # 브랜치 전환
git switch -c [브랜치] # 생성 + 전환
git switch - # 이전 브랜치로
3. 주의사항:
- 전환 전
git status확인 - 미커밋 변경사항 처리
- Stash 또는 커밋 필수
완료 체크:
- git checkout으로 브랜치 전환할 수 있다
- git switch 사용법을 안다
- 브랜치 전환 시 주의사항을 이해했다
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.
