Appearance
10차시. 브랜치와 태그
Day 2 · 13:00–13:45 (수업 45분) / 13:45–14:00 (휴식 15분)
저장소: portfolio-web
선수: 점심시간 전 Issue 실습 완료, main 브랜치 최신 상태
이 차시에서 하는 일
- 메인 코드를 보호하기 위해 브랜치로 작업을 격리한다.
git switch -c로 브랜치를 만들고 전환한다.checkout의 역사적 역할을 이해한다.- 태그로 릴리스 지점을 기록한다.
- 브랜치 전환 시 파일 내용이 바뀌는 것을 직접 확인한다.
왜 필요한가
배포 중인 main 브랜치에서 직접 코드를 개발하다가 코드가 망가지면 배포 사이트도 즉시 마비된다. 마치 평행우주를 만들듯 독립된 복사본 가지(Branch)를 뻗어서 작업하면 마음껏 실험하다가 실패하면 가지를 버리고 성공했을 때만 합칠 수 있어 안전하다.
핵심 개념
- 브랜치: 작업 흐름을 나누는 독립된 가지다.
git switch -c: 새 브랜치를 만들면서 동시에 그 브랜치로 이동한다.git switch: 기존 브랜치로 전환한다.git checkout: 과거 Git에서 브랜치 전환에 쓰이던 구 명령어다. 새 코드에서는switch를 우선 사용한다.- 태그: 특정 커밋에 이름을 붙인 릴리스 지점이다.
- 경량 태그:
git tag v0.1.0처럼 단순히 이름만 붙인다. - 주석 태그:
git tag -a v0.2.0 -m "Release v0.2.0"처럼 작성자와 설명을 포함한다.
따라하기
- 터미널에서 현재 브랜치를 확인한다.
feature/profile-design브랜치를 만들고 이동한다.- OpenCode에 명사형 프롬프트를 입력해 스타일 수정 초안을 받는다.
- 변경을 확인하고 stage 한다.
- 커밋한다.
main으로 돌아온다.- 브랜치 격리 현상, 즉 코드가 원래대로 돌아오는 것을 확인한다.
- 현재
main에v0.1.0태그를 부여한다. - 태그 목록을 확인한다.
- 브랜치 삭제는 아직 하지 않는다. 병합 뒤 11차시에서 수행한다.
Git 명령
bash
git branch
git switch -c feature/profile-design
git add .
git commit -m "feat: 프로필 카드 그림자 효과 추가"
git switch main
git tag v0.1.0
git tag선택 참고 명령
bash
git checkout feature/profile-design
git tag -a v0.2.0 -m "Release v0.2.0"병합 전에는 git branch -d feature/profile-design이 not fully merged로 실패한다. 브랜치 삭제는 11차시 병합 뒤에 수행한다.
에이전트 요청 예시
text
프로필 영역 부드러운 그림자 스타일 추가
브랜치와 태그 차이 설명확인법
-
git switch로 두 브랜치를 오간다. - 브랜치 전환 시 파일 내용이 바뀌는 것을 확인한다.
-
git tag실행 시v0.1.0이 표시된다. -
git status가 깨끗하다.
오류 복구
| 증상 | 원인 | 대응 |
|---|---|---|
| 파일이 저장되지 않음 | 커밋 전 전환 | 커밋 후 전환한다 |
| 브랜치 이름 중복 | 이미 존재하는 브랜치 | 다른 이름을 사용한다 |
| 브랜치 삭제 실패 | 병합 전 삭제 시도 | 11차시 병합 뒤에 삭제한다 |
| 태그가 보이지 않음 | 태그 생성 실패 | git tag v0.1.0을 다시 실행한다 |