C

git branch 생성하고 전환하는 법: 브랜치 기본 명령어 정리

2026-06-10 · Git · 도구 · 브랜치 · 협업 · 문제해결

git branch 생성하고 전환하는 법, 기본부터

브랜치는 메인 코드를 건드리지 않고 새 기능이나 실험을 따로 진행하는 "작업 분기"입니다. git branch 생성하고 전환하는 법을 익히면 협업과 실험이 안전해집니다. 최신 Git에서는 브랜치를 만들고 옮길 때 git switch를, 예전에는 git checkout을 썼는데, 이 글에서 둘 다 정확히 정리합니다.

먼저 현재 브랜치 확인

# 브랜치 목록 보기 (현재 브랜치에 * 표시)
git branch

# 원격 포함 전체 보기
git branch -a

해결 1: 브랜치 생성하고 바로 전환하기

가장 많이 쓰는 패턴은 생성과 전환을 한 번에 하는 것입니다.

# 최신 Git (권장)
git switch -c feature/login

# 예전 방식 (동일 동작)
git checkout -b feature/login

-c(switch) 또는 -b(checkout)는 "새로 만들면서 그 브랜치로 이동"을 의미합니다.

해결 2: 기존 브랜치로 전환하기

# 최신 Git
git switch main

# 예전 방식
git checkout main
작업최신(switch)예전(checkout)
브랜치 이동git switch 이름git checkout 이름
생성+이동git switch -c 이름git checkout -b 이름
이전 브랜치로git switch -git checkout -

switch는 브랜치 이동 전용이라 의미가 명확합니다. checkout은 파일 복구 등 다른 기능도 겸해 헷갈릴 수 있어 최신 Git에서는 switch를 권장합니다.

해결 3: 만든 브랜치를 원격에 올리기

새 브랜치를 처음 push할 때는 업스트림을 함께 지정합니다.

git push -u origin feature/login

-u를 한 번 붙이면 이후엔 git push만으로 동작합니다.

해결 4: 원격 브랜치를 내 로컬로 가져오기

동료가 만든 원격 브랜치에서 작업하려면 가져와야 합니다.

# 원격 정보 갱신
git fetch

# 원격 브랜치로 전환 (자동으로 추적 브랜치 생성)
git switch feature/login

해결 5: 브랜치 삭제하고 이름 바꾸기

# 병합된 브랜치 안전 삭제
git branch -d feature/login

# 병합 안 된 브랜치 강제 삭제 (주의: 작업 유실 가능)
git branch -D feature/login

# 현재 브랜치 이름 변경
git branch -m new-name

# 원격 브랜치 삭제
git push origin --delete feature/login

경고: -D(대문자)는 병합되지 않은 커밋이 있어도 강제로 삭제합니다. 작업이 사라질 수 있으니 정말 버릴 때만 사용하세요. -d(소문자)는 안전장치가 있어 미병합 브랜치를 막아줍니다.

주의점 정리

  • 전환 전 변경 사항은 커밋하거나 git stash로 잠시 보관하세요
  • 커밋 안 한 변경이 있으면 전환이 막히거나 따라올 수 있습니다
  • 브랜치 이름은 feature/, fix/ 같은 규칙을 쓰면 협업이 편합니다
# 전환 전에 작업 임시 보관
git stash
git switch main
# 돌아와서 복원
git switch feature/login
git stash pop

자주 묻는 질문

Q1. switch와 checkout 중 무엇을 써야 하나요?

브랜치를 만들고 옮기는 목적이라면 git switch를 권합니다. 의미가 명확하고 실수가 적습니다. checkout은 여전히 동작하지만 파일 복구 등 여러 기능을 겸해 입문자가 헷갈리기 쉽습니다. 오래된 자료를 볼 때를 대비해 checkout 형태도 알아두면 좋습니다.

Q2. 브랜치를 전환하려는데 "changes would be overwritten"이라고 막혀요.

현재 브랜치에 커밋하지 않은 변경이 있어서입니다. 먼저 git commit으로 저장하거나, 임시로 git stash에 보관한 뒤 전환하세요. 전환 후 git stash pop으로 복원할 수 있습니다.

Q3. 브랜치를 삭제했는데 되살릴 수 있나요?

삭제 직후라면 가능성이 높습니다. git reflog에서 그 브랜치의 마지막 커밋 해시를 찾아 git switch -c 브랜치이름 해시로 복구하세요. 단, 시간이 지나 정리(gc)되면 어려워지므로 빨리 시도하는 것이 좋습니다.

git branch 생성하고 전환하는 법: 브랜치 기본 명령어 정리 | CodeMaster 블로그 | CodeMaster