Skip to main content

브랜치로 안전하게 실험하기

Views 35약 5분생성형 AI 활용
Summary

브랜치는 안전한 작업 공간이다

저장소에는 보통 main이라는 기본 브랜치가 있습니다. 지금까지 만든 커밋들이 쌓여 있는 중심 흐름이라고 생각하면 됩니다.

main 브랜치는 안정된 기준선입니다. 실행이 잘 되고, 다른 사람에게 보여줘도 되는 상태를 유지하는 곳입니다. 그래서 새 기능을 만들거나 큰 수정을 할 때는 main에서 바로 작업하지 않는 것이 좋습니다.

이때 사용하는 것이 브랜치입니다.

브랜치는 기존 코드를 복사해서 따로 실험하는 작업 공간처럼 생각하면 쉽습니다. 실제로 파일 전체를 새로 복사하는 것은 아니지만, 초보자 입장에서는 "원본을 안전하게 둔 채 옆에서 작업하는 공간"이라고 이해하면 충분합니다.

예를 들어 로그인 기능을 추가한다고 해 보겠습니다.

  • main: 안정된 기존 코드

  • add-login: 로그인 기능을 만드는 작업 공간

add-login 브랜치에서 실수해도 main은 그대로 남아 있습니다. 작업이 잘 끝나면 나중에 main에 합치면 됩니다.

브랜치로 안전하게 실험하기

현재 브랜치 확인하기

먼저 현재 저장소에서 어떤 브랜치가 있는지 확인합니다.

git branch

결과는 대략 이렇게 보일 수 있습니다.

* main

앞에 * 표시가 붙은 브랜치가 현재 내가 작업 중인 브랜치입니다.

현재 main에 있다면, 아직 안정된 기준선에서 작업 중이라는 뜻입니다.

새 브랜치 만들기

새로운 기능을 만들기 위해 브랜치를 하나 만들어 보겠습니다. 예시는 로그인 기능을 추가하는 상황입니다.

git branch add-login

이 명령은 add-login이라는 새 브랜치를 만듭니다. 하지만 브랜치를 만들기만 했을 뿐, 아직 그 브랜치로 이동한 것은 아닙니다.

다시 확인해 봅니다.

git branch
  add-login
* main

add-login 브랜치는 생겼지만, *는 여전히 main에 있습니다. 즉, 현재 작업 위치는 아직 main입니다.

브랜치 이동하기

이제 add-login 브랜치로 이동합니다.

git switch add-login

다시 확인합니다.

git branch
* add-login
  main

이제 add-login 앞에 *가 붙었습니다. 앞으로 만드는 커밋은 main이 아니라 add-login 브랜치에 기록됩니다.

이것이 브랜치의 핵심입니다.

main은 그대로 두고, 새 브랜치에서 안전하게 작업합니다.

만들면서 바로 이동하기

브랜치를 만들고 이동하는 과정은 자주 사용합니다. 그래서 한 번에 처리하는 명령도 있습니다.

git switch -c add-login

이 명령은 다음 두 작업을 한 번에 합니다.

  1. add-login 브랜치를 만든다.

  2. 만든 브랜치로 바로 이동한다.

현장에서 많이 쓰는 방식입니다.

예전부터 많이 사용된 명령도 있습니다.

git checkout -b add-login

이 명령도 같은 역할을 합니다. 새 브랜치를 만들고 바로 이동합니다.

초보자라면 우선 git switch -c를 기억해도 됩니다. 다만 다른 사람의 문서나 회사 프로젝트에서 git checkout -b를 볼 수 있으므로, 같은 의미라는 정도는 알아두면 좋습니다.

브랜치 이름은 짧고 명확하게 짓기

브랜치 이름은 작업 내용을 바로 알 수 있게 짓는 것이 좋습니다.

좋은 예시는 다음과 같습니다.

add-login
fix-readme-typo
update-header
remove-unused-file

이름만 봐도 무엇을 하려는 브랜치인지 알 수 있습니다.

반대로 이런 이름은 피하는 것이 좋습니다.

test
work
new
my-branch
final

처음 만들 때는 편해 보여도, 브랜치가 많아지면 어떤 작업인지 알기 어렵습니다.

간단한 규칙을 정리하면 다음과 같습니다.

  • 영어 소문자를 사용한다.

  • 단어 사이는 -로 연결한다.

  • 작업 목적을 앞에 둔다.

  • 너무 길게 쓰지 않는다.

예를 들어 README 오타를 고치는 작업이라면 fix-readme-typo가 좋습니다. README 설명을 보완한다면 update-readme-description이 좋습니다. 로그인 기능을 추가한다면 add-login이 좋습니다.

실전 예시: README 설명 수정 브랜치 만들기

이번에는 실제로 브랜치를 만들고, 파일을 수정하고, 커밋까지 해 보겠습니다.

먼저 main에 있는지 확인합니다.

git branch

main 앞에 *가 없다면 main으로 이동합니다.

git switch main

원격 저장소와 연결된 프로젝트라면 작업 전 최신 상태를 가져오는 습관도 좋습니다.

git pull

이제 README 설명을 수정할 브랜치를 만듭니다.

git switch -c update-readme-description

README.md 파일을 열고 문장을 하나 추가해 봅니다.

이 저장소는 Git과 GitHub 연습을 위한 프로젝트입니다.

수정 후 상태를 확인합니다.

git status

변경된 파일이 보이면 변경 내용을 확인합니다.

git diff

문제가 없다면 스테이징합니다.

git add README.md

커밋합니다.

git commit -m "Update README description"

이 커밋은 update-readme-description 브랜치에만 기록됩니다. 아직 main에는 합쳐지지 않았습니다.

main으로 돌아와 병합하기

작업이 끝났다면 이제 main에 합칠 차례입니다. 이 작업을 병합, 영어로는 merge라고 합니다.

먼저 main 브랜치로 이동합니다.

git switch main

그리고 작업 브랜치를 병합합니다.

git merge update-readme-description

이제 update-readme-description 브랜치에서 만든 변경 사항이 main에 합쳐졌습니다.

흐름을 정리하면 이렇습니다.

1. main에서 시작한다.
2. 작업용 브랜치를 만든다.
3. 작업용 브랜치에서 파일을 수정한다.
4. 커밋한다.
5. main으로 돌아온다.
6. 작업용 브랜치를 main에 merge한다.

이 흐름이 익숙해지면 새 기능을 만들 때 훨씬 안전하게 작업할 수 있습니다.

병합된 브랜치 삭제하기

작업이 끝나고 main에 병합까지 했다면, 작업용 브랜치는 더 이상 필요하지 않습니다. 이런 브랜치를 계속 남겨 두면 저장소가 지저분해집니다.

브랜치 목록을 확인했을 때 예전 작업 브랜치가 너무 많으면, 현재 어떤 작업이 진행 중인지 파악하기 어렵습니다.

병합이 끝난 브랜치는 삭제해도 됩니다.

git branch -d update-readme-description

여기서 -d는 delete, 즉 삭제를 의미합니다.

다시 브랜치 목록을 확인합니다.

git branch
* main

이제 저장소가 깔끔해졌습니다.

중요한 점은 브랜치를 삭제해도 main에 병합된 커밋이 사라지는 것은 아니라는 점입니다. 이미 main에 합쳐진 변경 사항은 그대로 남아 있습니다. 삭제되는 것은 더 이상 필요 없는 작업 공간의 이름입니다.

브랜치를 사용할 때 자주 하는 실수

첫 번째 실수는 main에서 바로 작업하는 것입니다.

혼자 연습할 때는 큰 문제가 없어 보일 수 있습니다. 하지만 실무에서는 main을 안정된 상태로 유지하는 것이 중요합니다. 새 기능이나 수정 작업은 가능하면 별도 브랜치에서 시작하는 습관을 들이는 것이 좋습니다.

두 번째 실수는 브랜치를 만들었지만 이동하지 않은 채 작업하는 것입니다.

git branch add-login은 브랜치를 만들기만 합니다. 이동까지 하려면 다음 명령이 필요합니다.

git switch add-login

또는 처음부터 이렇게 입력합니다.

git switch -c add-login

세 번째 실수는 작업이 끝난 브랜치를 계속 남겨 두는 것입니다.

병합된 브랜치는 삭제해서 목록을 정리하세요. 브랜치 목록이 깔끔하면 현재 진행 중인 작업을 더 쉽게 파악할 수 있습니다.

브랜치 작업 기본 공식

브랜치 사용은 처음에는 복잡해 보이지만, 실제 흐름은 단순합니다.

# 1. main으로 이동
git switch main

# 2. 새 작업 브랜치 만들고 이동
git switch -c add-login

# 3. 파일 수정 후 상태 확인
git status
git diff

# 4. 변경 사항 커밋
git add README.md
git commit -m "Add login guide"

# 5. main으로 돌아가기
git switch main

# 6. 작업 브랜치 병합
git merge add-login

# 7. 병합된 브랜치 삭제
git branch -d add-login

위 예시는 README에 로그인 안내를 추가하는 작은 작업이라고 생각하면 됩니다. 실제 프로젝트에서는 수정한 파일명에 맞게 git add 파일명을 바꾸면 됩니다. 여러 파일을 한꺼번에 올리는 git add .도 사용할 수 있지만, 초보 단계에서는 git status로 목록을 확인한 뒤 필요한 파일만 지정하는 편이 안전합니다.

브랜치는 실수해도 원본을 망치지 않게 해 주는 안전장치입니다. main은 안정된 기준선으로 두고, 새 작업은 짧고 명확한 이름의 브랜치에서 진행하세요. 작업이 끝나면 main에 병합하고, 필요 없어진 브랜치는 삭제합니다.

다음 단계에서는 이 브랜치 흐름을 GitHub의 Pull Request와 연결해 보게 됩니다. 브랜치에서 작업한 내용을 바로 합치지 않고, 검토하고 토론한 뒤 합치는 방식입니다.

책 목록

GitHub 첫걸음부터 실무 협업까지

전체 목차 보기

이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.

틸노트는 사용자가 AI를 활용해 노트를 쉽게 작성하거나 편집할 수 있는 서비스입니다.

AI 스퀘어 단톡방에 함께해요

AI 활용과 틸노트 사용 팁을 나누는 오픈채팅방입니다. 입장 비밀번호는 tilnote입니다.

참여하기