Ch.20 Git 기초 — 코드의 타임머신

브랜치와 협업

브랜치의 개념과 필요성을 이해한다머지와 충돌 해결 방법을 알 수 있다GitHub를 통한 협업 워크플로우를 이해한다

새 기능 만들다가 메인 코드가 망가지면?

로그인 기능을 추가하는 도중에 기존 코드가 깨졌습니다. 완성될 때까지 메인 코드는 안전하게 보호할 방법이 필요합니다.

실험적인 작업을 안전하게 분리할 수 없을까?

브랜치 — 평행우주처럼 독립된 작업 공간을 만들고, 완성되면 합칩니다.


article

핵심 내용

브랜치는 평행우주입니다 본체에 영향 없이 실험할 수 있죠

main 브랜치 = 완성된 코드가 있는 본체 새 브랜치 = 기능 개발용 복사본 완성되면 main에 머지(merge)합니다.

# 브랜치 목록 확인
git branch
# * main    ← 현재 브랜치에 * 표시

# 새 브랜치 생성 + 이동
git switch -c feature/login
# 또는: git checkout -b feature/login

# 브랜치 이동
git switch main
# 또는: git checkout main

# 브랜치 확인
git branch
# * main
#   feature/login

브랜치 이름 규칙 `feature/기능명` — 새 기능 `fix/버그명` — 버그 수정 `refactor/대상` — 리팩토링

기능이 완성되면 main에 합칩니다 가끔 충돌이 발생합니다

# 1. main으로 이동
git switch main

# 2. feature 브랜치를 main에 합치기
git merge feature/login

# 충돌 없으면 자동 완료!
# 충돌 있으면 아래처럼 표시됨:
// 충돌 발생 시 파일 내용:
<<<<<<< HEAD
  <h1>기존 제목</h1>
=======
  <h1>새로운 제목</h1>
>>>>>>> feature/login

// 해결: 원하는 코드만 남기고 마커 삭제
  <h1>새로운 제목</h1>

// 그 다음:
// git add .
// git commit -m "merge: login 기능 충돌 해결"

충돌은 자연스러운 것입니다. 같은 파일의 같은 줄을 두 브랜치에서 수정하면 Git이 어느 쪽을 택할지 물어보는 것입니다. 당황하지 말고 `<<<<`, `====`, `>>>>` 마커를 찾아 정리하세요.

로컬 Git을 GitHub에 올려서 어디서든 접근하고 협업합니다

# GitHub에 원격 저장소 연결
git remote add origin https://github.com/user/repo.git

# 코드 올리기 (push)
git push -u origin main

# 코드 받기 (pull)
git pull origin main

# feature 브랜치 push
git push -u origin feature/login

Pull Request(PR)이 핵심입니다 직접 main에 push하지 말고, 브랜치를 push한 뒤 PR을 만드세요. 코드 리뷰를 거쳐 합치는 것이 안전한 협업 방식입니다.

새 브랜치를 만들면서 동시에 이동하는 명령어는?

Git 충돌은 항상 에러이며 피해야 한다.

Pull Request(PR)의 목적은?

key

핵심 용어

⬆️

Push

로컬 → GitHub로 코드 올리기

⬇️

Pull

GitHub → 로컬로 코드 받기

🍴

Fork

남의 저장소를 내 계정으로 복사

📬

Pull Request

코드 변경을 리뷰 후 합쳐달라는 요청

edit_note

정리 노트

브랜치와 협업 정리

핵심 개념

브랜치
독립된 작업 공간 — main을 건드리지 않고 새 기능 개발
머지(merge)
브랜치의 변경을 main에 합치는 작업
충돌(conflict)
같은 줄을 다르게 수정했을 때 발생 — 수동으로 해결 필요
Pull Request
코드 리뷰를 거쳐 안전하게 머지하는 협업 도구

브랜치를 만들어 작업하고, PR로 리뷰받는 것이 현업 표준 워크플로우입니다.

image

시각 자료

퀴즈와 인터랙션으로 더 깊이 학습하세요

play_circle인터랙티브 레슨 시작