Git을 사용하면 브랜치(Branch)와 태그(Tag) 를 활용하여 효과적으로 버전 관리를 할 수 있음.
브랜치와 태그의 개념과 활용법을 정리
Git의 브랜치는 코드를 독립적으로 수정할 수 있는 가지(Branch) 를 의미.
각 브랜치는 서로 영향을 주지 않으면서도, 필요할 때 병합(Merge)할 수 있음.
브랜치는 "어디서부터 새 작업을 시작할 것인가"를 가리키는 포인터에 가까움.
브랜치마다 서로 다른 커밋 이력을 가질 수 있으므로, 여러 기능을 병렬로 개발할 수 있음
A → B → C → F (main 브랜치)
\
D → E (feature/login 브랜치)
브랜치를 사용하는 이유
git branch
git branch 새로운-브랜치명
git checkout 새로운-브랜치명
git checkout -b 새로운-브랜치명
git branch --list
* 기호가 현재 위치한 브랜치를 나타냄.git branch -d 삭제할-브랜치명
-d 옵션으로 삭제 가능. -D 옵션을 사용해야 강제 삭제됨.git branch -D 삭제할-브랜치명
git checkout main # 메인 브랜치로 이동
git merge 기능-브랜치명 # 기능 브랜치를 메인 브랜치에 병합
fast-forward 방식으로 변경 사항이 병합됨.git merge 기능-브랜치명
# 충돌 발생 시 파일을 수정한 후
git add .
git commit -m "Merge conflict resolved"
Git 태그는 특정 커밋을 쉽게 식별할 수 있도록 이름을 붙이는 기능.
주로 버전 관리(v1.0, v2.0) 용도로 사용해.
(v1.0) - tag
↓
A → B → C → F (main 브랜치)
\
X → Y (bugfix/hotfix 브랜치)
↑
(hotfix_v1.0.1) - tag
v1.0 태그를 붙이고 배포를 진행한다.C (v1.0) 커밋 지점에서 bugfix/hotfix 브랜치를 만든다.hotfix_v1.0.1을 붙여 핫픽스 버전을 배포한다.v1.0 태그: 메인 브랜치에서 정식 배포했던 버전hotfix_v1.0.1 태그: 긴급 수정 버전메인 브랜치의 태그(예: v1.0): 새 기능이 정상 동작하여 배포 가능한 시점에 붙이는 ‘공식 버전’
핫픽스 브랜치의 태그(예: hotfix_v1.0.1): 기존 배포 버전에서 발견된 문제를 긴급하게 수정한 버전을 명시
실무 활용:
태그를 사용하는 이유
특정 버전(릴리즈 버전)을 쉽게 관리할 수 있음.
배포된 코드의 상태를 추적하기 편리함.
태그를 이용해 과거 버전으로 쉽게 돌아갈 수 있음.
git tag
git tag 태그명
git tag 태그명 커밋해시
git tag -d 태그명
git push origin --delete 태그명
git push origin 태그명
git push origin --tags
git checkout 태그명
| 기능 | Branch(브랜치) | Tag(태그) |
|---|---|---|
| 개념 | 독립적인 작업 공간 | 특정 커밋을 표시하는 이름 |
| 주 목적 | 새로운 기능 개발 & 버그 수정 | 버전 관리 (v1.0, v2.0) |
| 삭제 가능 여부 | 가능 (git branch -d) | 가능 (git tag -d) |
| 이동 가능 여부 | 가능 (git checkout 브랜치명) | 가능 (git checkout 태그명) |
| 원격 저장소 푸시 | git push origin 브랜치명 | git push origin 태그명 |