Git

Git 강좌 03강 — 브랜치와 병합 + 충돌 해결

🎯 학습 목표

  • 브랜치의 개념과 필요성을 이해한다.
  • 브랜치를 만들고 전환·병합한다.
  • 병합 충돌(conflict)을 직접 해결한다.

📖 개념 설명

브랜치는 메인 코드에 영향을 주지 않고 독립적으로 작업하는 평행 세계입니다. 새 기능을 feature/login 브랜치에서 만들다가 문제가 생기면 그 브랜치만 버리면 됩니다. 메인(main)은 항상 안정적으로 유지하고, 작업은 브랜치에서 한 뒤 검증되면 병합하는 것이 표준 흐름입니다.

병합(merge)은 브랜치의 작업을 메인으로 합치는 것입니다. 두 브랜치가 같은 줄을 다르게 고쳤다면 Git이 자동으로 합치지 못하고 충돌이 납니다. 충돌은 오류가 아니라 “사람이 결정해 달라”는 요청입니다.

💻 실습 — 브랜치

git branch                       # 브랜치 목록
git switch -c feature/login      # 생성 + 전환 (구버전: git checkout -b)

# 작업 후 커밋
echo "login code" > login.js
git add . && git commit -m "로그인 기능 추가"

# main으로 돌아가 병합
git switch main
git merge feature/login

# 병합 끝난 브랜치 삭제
git branch -d feature/login

💻 실습 — 충돌 해결

# 병합 시 충돌이 나면 해당 파일에 아래 표시가 생김
#   <<<<<<< HEAD
#   현재(main)의 내용
#   =======
#   병합하려는 브랜치의 내용
#   >>>>>>> feature/login

# 1) 파일을 열어 원하는 내용으로 직접 정리 (표시 줄 삭제)
# 2) 해결한 파일을 add 하고 커밋
git add 충돌파일
git commit              # 병합 커밋 완료

⚠️ 주의사항

  • 충돌 해결 시 <<<, ===, >>> 표시 줄을 반드시 모두 지워야 합니다.
  • 병합 전 git switch로 “받는 쪽” 브랜치에 있는지 확인하세요.

💡 팁

  • VS Code는 충돌 부분에 “Accept Current/Incoming/Both” 버튼을 띄워 해결을 도와줍니다.
  • 충돌이 두렵다면 작업 전 git pull로 최신 상태를 자주 받아 충돌 범위를 줄이세요.