3장. HEAD, 브렌치 정의
브렌치는 작업 길을 나누는 표시입니다. 큰 길(main)에서 새 길(feature)을 잠깐 따로 빼서 작업할 수 있게 해줍니다.
HEAD는 "지금 내가 서 있는 길의 끝"을 가리키는 표식입니다. 즉, 현재 내가 어디서 작업 중인지 알려주는 화살표라고 생각하면 됩니다.
브렌치가 왜 필요한가
- 안정적인 main을 지키면서 작업을 격리한 상태로 새 시안을 안전하게 실험할 수 있습니다.
- 여러 사람이 같은 프로젝트를 동시에 작업해도 충돌 위험을 줄이기 쉬워집니다.
- 문제가 생겨도 작업 길을 분리해 두었기 때문에 되돌리기 편합니다.
그림 3-1. HEAD가 feature 브렌치를 가리키는 상태
지금 작업 위치(HEAD)가 feature/login-bg 위에 있으면, 새 커밋도 그 길에 쌓입니다.
그림 3-2. 작업 후 main으로 돌아온 상태
작업이 끝나면 합치고(main), 다시 HEAD를 main으로 두고 다음 작업을 시작합니다.
Checkout이란?
Checkout은 "지금 작업할 브렌치를 바꾸는 행동"입니다. checkout을 하면 HEAD가 새 브렌치를 가리키게 됩니다.
예를 들어 main에서 feature/login-bg로 checkout하면, 그다음 커밋은 feature/login-bg에 쌓입니다. 다시 main으로 checkout하면 main에서 이어서 작업합니다.
브렌치 이름 추천 규칙
- 형식: 카테고리/작업이름
- 카테고리 예시: feature, fix, refactor, chore, docs, hotfix
- 예시: feature/login-bg, fix/button-align, refactor/ui-layout
- 이름 조건: 모두 소문자, 띄어쓰기 대신 하이픈(-) 사용, 특수문자 사용 금지 (구분용 / 제외)
- 한 브렌치에는 한 가지 목적만 담기
카테고리는 보통 아래 기준으로 고릅니다.
- feature: 새 기능/새 화면을 추가할 때
- fix: 동작 오류, 깨진 UI, 잘못된 값 등을 고칠 때
- refactor: 기능은 그대로 두고 구조만 정리할 때
- chore: 빌드 설정, 폴더 정리, 의존성 업데이트 같은 유지보수 작업
- docs: 설명 문서, 주석, 가이드 문구를 고칠 때
- hotfix: 운영 중인 문제를 긴급하게 바로 수정할 때