VIBECODING 365 / DICTIONARY
브랜치
Branch
DEFINITION
브랜치는 Git에서 특정 커밋을 가리키는 가벼운 이름표다. Pro Git Branches in a Nutshell은 브랜치를 커밋을 가리키는 이동식 포인터라고 설명한다. 메인 줄기에서 잠깐 갈라져 실험하거나 기능을 붙인 뒤, 필요할 때 다시 합치면 된다. 다른 버전 관리 도구에서는 브랜치가 디렉터리 통째 복사처럼 무거울 수 있지만, Git은 이 이름표를 거의 즉시 만들고 바꿀 수 있어서 하루에도 여러 번 갈라졌다가 합치는 흐름을 자연스럽게 권한다.
Git은 변경 조각을 길게 쌓는 방식이 아니라 시점마다 스냅샷을 남긴다. 커밋 하나에는 그 순간의 파일 모습, 누가 언제 적었는지, 설명 메시지, 바로 앞 커밋이 무엇인지가 함께 들어 있다. 브랜치는 그중 한 커밋을 가리킬 뿐이다. 새 커밋이 생기면 그 이름표가 최신 커밋으로 한 칸 앞으로 미끄러진다.
이름표와 지금 서 있는 자리
기본으로 많이 보이던 master라는 이름은 git init이 만들어 주는 출발점일 뿐, 다른 브랜치보다 특별한 종류는 아니다. 새 브랜치를 만들면 지금 서 있는 커밋에 이름만 하나 더 붙는다. 아직 작업 위치를 옮긴 것은 아니다. 지금 어느 줄에서 작업 중인지는 HEAD라는 표시가 알려 준다. 브랜치를 바꾸면 HEAD가 그 이름표를 따라가고, 그다음 커밋부터는 그 줄만 앞으로 나아간다. 다른 줄의 이름표는 예전 커밋에 그대로 남을 수 있다.
줄을 바꾸면 파일도 바뀐다
브랜치를 전환하면 작업 폴더의 파일이 그 브랜치가 가리키는 스냅샷 모습으로 맞춰진다. 깨끗이 맞출 수 없으면 Git은 전환을 막는다. 한쪽 줄에서 작업하다 다른 줄로 돌아가 또 커밋하면 이력이 갈라진다. 나중에 그래프 형태의 로그로 보면 갈래와 이름표 위치를 한눈에 확인할 수 있다. 합칠 준비가 되면 머지로 두 줄의 이력을 다시 이어 준다.
왜 자주 만들어도 되나
브랜치는 커밋 해시 하나를 적어 둔 작은 기록에 가깝다. 만들고 지우는 비용이 거의 없어서, 기능·버그·실험마다 줄을 나누는 습관이 부담이 되지 않는다. 새 줄을 만들자마자 그쪽으로 옮기려면 생성과 전환을 한 번에 하는 명령을 쓰면 된다. 바이브 코딩에서는 AI 실험이나 기능 시도를 메인과 떨어뜨려 두고, 확인된 뒤에만 합치는 단위로 브랜치를 쓴다. 메인을 직접 건드리지 않고도 안전하게 시도할 수 있는 이유가 여기에 있다.
ENGLISH
Branch
EXAMPLE
git switch -c feature/login
관련