본문으로 건너뛰기
웹 개발 기초집LESSON 28

Git 브랜치로 작업 분리하기

난이도입문
예상 시간25분
선수지식이전 강의

28강. Git 브랜치로 작업 분리하기

이번 강의의 결과물은 새 브랜치에서 포트폴리오 소개 문구를 수정하고, 변경을 main 브랜치에 병합한 Git 기록입니다.

1. 이번 강의에서 해결할 문제​

완성되어 동작하는 코드를 직접 수정하다가 기능 전체가 망가지면 되돌리기 부담스럽습니다. 브랜치를 사용하면 안정적인 main에서 작업 흐름을 나누고, 확인이 끝난 변경만 다시 합칠 수 있습니다.

학습 목표​

  • 완성되어 동작하는 코드를 직접 수정하다가 기능 전체가 망가지면 되돌리기 부담스럽습니다. 브랜치를 사용하면 안정적인 main에서 작업 흐름을 나누고, 확인이 끝난 변경만 다시 합칠 수 있습니다.
  • 핵심 개념을 코드 예시와 짧은 실습에 적용하고 결과를 설명합니다.

2. 핵심 개념​

  • 브랜치: 특정 커밋을 가리키며 새 커밋에 따라 이동하는 이름
  • main: 이 교재 저장소에서 안정된 기준으로 사용하는 기본 브랜치
  • HEAD: 현재 체크아웃한 브랜치 또는 커밋을 가리키는 위치
  • 병합: 다른 브랜치의 변경 이력을 현재 브랜치에 합치는 작업
  • 충돌: Git이 두 변경을 자동으로 합칠 수 없어 사람이 선택해야 하는 상태

기본 작업 흐름:

main: A ─────────── M
\ /
feature: B ─── C ───┘

git switch -c는 새 브랜치를 만들면서 그 브랜치로 이동합니다. 브랜치 전환과 병합의 현재 명령 옵션은 Git switch 공식 문서와 Git merge 공식 문서에서 확인할 수 있습니다.

3. 코드 예시​

작업 저장소 위치: D:\WebProject\StartBook\dev-foundations

먼저 현재 변경 상태와 브랜치를 확인합니다.

git status
git branch --show-current

포트폴리오 소개 문구 작업용 브랜치를 만듭니다.

git switch -c docs/update-portfolio-intro

파일명: projects/personal-portfolio/index.html

<p class="hero__intro">
게임의 상호작용과 웹의 사용자 경험을 함께 설계하는 개발자입니다.
</p>

변경을 확인하고 커밋합니다.

git diff
git add projects/personal-portfolio/index.html
git commit -m "docs: refine portfolio introduction"

main으로 돌아가 작업 브랜치를 병합합니다.

git switch main
git merge docs/update-portfolio-intro
git log --oneline --graph --decorate -5

병합이 끝났고 브랜치가 더 필요하지 않을 때만 삭제합니다.

git branch -d docs/update-portfolio-intro

병합된 포트폴리오를 확인할 때의 실행 위치: D:\WebProject\StartBook\dev-foundations\projects\personal-portfolio

python -m http.server 5500

브라우저에서 http://localhost:5500을 열어 소개 문구가 유지되는지 확인합니다.

4. 코드가 동작하는 이유​

  1. 새 브랜치는 생성 시점의 현재 커밋을 가리킵니다.
  2. 브랜치를 전환하면 작업 트리와 인덱스가 해당 브랜치 상태에 맞게 갱신됩니다.
  3. 작업 브랜치에서 만든 커밋은 우선 그 브랜치의 끝에만 연결됩니다.
  4. main에서 git merge를 실행해야 작업 브랜치 변경이 main에 들어옵니다.
  5. main에 별도 새 커밋이 없다면 포인터만 앞으로 이동하는 fast-forward 병합이 될 수 있습니다.
  6. 브랜치 이름을 삭제해도 병합된 커밋은 main 기록에 남습니다.

브랜치는 폴더 복사본이 아니라 커밋을 가리키는 가벼운 이름입니다. 그래서 기능, 버그 수정, 문서 작업 단위로 짧게 만들고 병합할 수 있습니다.

5. 자주 하는 실수​

  • 커밋하지 않은 변경이 많은 상태에서 무작정 브랜치를 전환함
  • 브랜치 생성 후 현재 브랜치를 확인하지 않고 수정함
  • 작업 브랜치에서 바로 배포하고 main에는 병합하지 않음
  • 서로 관계없는 변경을 한 브랜치와 한 커밋에 섞음
  • 충돌 표시인 <<<<<<<, =======, >>>>>>>를 그대로 커밋함
  • 아직 병합하지 않은 브랜치를 강제 삭제함
  • git branch -d가 원격 GitHub 브랜치도 삭제한다고 생각함

6. 짧은 실습 과제​

  1. 실습 전에 git status가 깨끗한지 확인합니다.
  2. practice/change-heading 브랜치를 만들고 이동합니다.
  3. 연습용 Markdown 문서 제목 한 줄을 수정합니다.
  4. 변경 파일만 선택해 practice: update heading으로 커밋합니다.
  5. main으로 돌아와 브랜치를 병합합니다.
  6. git log --oneline --graph --decorate -5로 커밋 연결을 확인합니다.
  7. 병합된 연습 브랜치를 삭제합니다.

완료 기준은 현재 브랜치를 매 단계 확인하고, 작업 커밋이 병합 후 main 기록에 포함된 것을 설명할 수 있는 것입니다.

7. 이해 점검 질문 3개​

  1. 브랜치와 폴더 복사본은 어떤 점이 다른가요?
  2. 작업 브랜치의 커밋을 main에 포함하려면 어느 브랜치에서 어떤 명령을 실행해야 하나요?
  3. 병합 충돌이 발생하면 Git이 사용자에게 요구하는 일은 무엇인가요?

핵심 요약​

  • 이번 강의의 핵심 개념을 코드의 구조와 실행 결과에 연결했습니다.
  • 코드 예시를 직접 바꾸는 짧은 실습으로 핵심 동작을 확인했습니다.
  • 이해 점검 질문에 답하며 다음 강의에 필요한 기준을 정리했습니다.
MINI QUIZ

Git 브랜치로 작업 분리하기 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“Git 브랜치로 작업 분리하기” 기능을 확장하기 좋은 구조로 설명한 것은 무엇인가요?
  2. 문제 2다음 중 “Git 브랜치로 작업 분리하기”의 핵심 개념을 올바르게 연결한 설명은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

28강. Git 브랜치로 작업 분리하기 미완료 상태