DaleSchool

브랜치로 안전하게 작업하기

입문15분

학습 목표

  • 브랜치가 무엇인지, 왜 필요한지 설명할 수 있다
  • GitHub 웹에서 브랜치를 만들고 전환할 수 있다
  • 브랜치에서 작업하고 main에 병합할 수 있다

브랜치가 필요한 이유

새 기능을 개발하다가 잘못되면 어떻게 될까요? main에 직접 작업했다면 원본이 망가집니다.

브랜치는 이 문제를 해결합니다. 원본(main)은 항상 안정적으로 유지하고, 새 작업은 별도의 복사본(브랜치)에서 합니다. 만족스러우면 합치고, 마음에 안 들면 그냥 버리면 됩니다.

main    ─────────────────────────────── (항상 안정적)
              \                   /
feature        ──── 작업 ──── 완성  (실험적)

브랜치 만들기

GitHub 웹에서 브랜치를 만드는 방법입니다.

  1. 저장소 메인 페이지에서 파일 목록 위 branch 선택기 클릭 (기본값: main)
  2. 텍스트 박스에 새 브랜치 이름 입력: add-profile
  3. Create branch: add-profile from 'main' 클릭

브랜치 이름 규칙:

  • 소문자, 하이픈(-) 사용
  • 무엇을 하는 브랜치인지 알 수 있게: fix-typo, add-dark-mode, update-readme

브랜치에서 파일 수정하기

브랜치를 만든 뒤 파일을 수정하면 그 변경이 브랜치에만 저장됩니다.

  1. add-profile 브랜치로 전환되어 있는지 확인 (branch 선택기에 add-profile 표시)
  2. README.md 클릭 → 연필 아이콘 클릭
  3. 내용 추가:
## 나에 대해

- 이름: 홍길동
- 관심사: 개발, 독서, 요리
- 목표: GitHub으로 협업하기
  1. Commit changes → 메시지: docs: 프로필 정보 추가
  2. Commit directly to the add-profile branch 선택

브랜치 비교하기

mainadd-profile이 어떻게 다른지 확인해봅니다.

  1. 저장소 페이지에서 branch 선택기를 main으로 바꾸기
  2. README.md 내용 확인 → 내가 추가한 내용이 없습니다
  3. 다시 add-profile로 전환 → 내용이 있습니다

브랜치끼리 독립적입니다.

브랜치 병합하기

작업이 완료되면 main에 합칩니다. 이 과정은 다음 레슨에서 Pull Request로 배울 예정입니다. 여기서는 간단하게 직접 병합하는 방법을 알아봅니다.

  1. 저장소 상단 Pull requests 탭 클릭
  2. New pull request 클릭
  3. base: main ← compare: add-profile 설정 확인
  4. 변경 사항(diff) 미리보기 확인
  5. Create pull request → 메시지 입력 → Merge pull request

병합 후 main에도 내 변경사항이 반영됩니다.

"왜?" — 팀에서 브랜치가 필수인 이유

혼자 작업하면 브랜치가 없어도 됩니다. 하지만 팀에서는 필수입니다.

팀원 A가 로그인 기능을 개발하는 동안, 팀원 B는 결제 기능을 개발합니다. 둘 다 main에 직접 커밋한다면 서로의 코드가 충돌합니다.

브랜치를 사용하면:

  • A는 feature/login 브랜치에서 작업
  • B는 feature/payment 브랜치에서 작업
  • 각자 완성하면 검토 후 main에 병합

충돌 없이 병렬로 개발할 수 있습니다.

심화 학습

브랜치 삭제하기

병합 완료된 브랜치는 정리합니다. 불필요한 브랜치가 쌓이면 관리가 어려워집니다.

  1. Pull Request가 병합되면 Delete branch 버튼이 나타납니다
  2. 또는 저장소 Code 탭 → N branches 링크 → 삭제할 브랜치 옆 휴지통 아이콘

브랜치를 삭제해도 커밋 이력은 남아 있습니다. 언제든지 복원할 수 있습니다.

기본 브랜치 이름 — main vs master

과거에는 기본 브랜치 이름이 master였습니다. 2020년부터 GitHub은 새 저장소의 기본 브랜치를 main으로 변경했습니다.

오래된 저장소나 튜토리얼에서 master를 볼 수 있습니다. 기능은 동일하고, 이름만 다릅니다.

Settings → Default branch에서 이름을 변경할 수 있습니다.

  1. my-first-repoadd-profile 브랜치를 만드세요.
  2. 해당 브랜치에서 README.md를 수정하고 커밋하세요.
  3. main 브랜치로 돌아와서 변경사항이 없는 것을 확인하세요.

Q1. 브랜치(Branch)를 사용하는 주된 이유는?

  • A) 저장소를 여러 계정에서 공유하기 위해
  • B) 원본(main)을 건드리지 않고 새 작업을 안전하게 진행하기 위해
  • C) 파일을 더 빠르게 업로드하기 위해
  • D) 커밋 메시지를 자동으로 생성하기 위해

참고 자료