태그와 버전
5. 자주 하는 실수 (Tip)
❌ 실수 1. 태그와 브랜치를 같은 이름으로 만든다
v1.2 를 태그로도, 브랜치로도 쓰면 명령이 어느 것을 가리키는지 모호해집니다. 태그는 v1.2.0, 브랜치는 release/1.2 처럼 형태를 다르게 정합니다.
❌ 실수 2. push 하면 태그도 같이 올라간다고 착각한다
기본 git push 는 태그를 옮기지 않습니다. 태그 이름을 지정하거나 --tags, --follow-tags 를 명시적으로 써야 합니다.
❌ 실수 3. 배포 태그를 경량 태그로 만든다
경량 태그는 작성자·날짜·메시지가 없어 나중에 누가 왜 태그를 달았는지 알 수 없습니다. 배포용은 항상 주석 태그(-a -m)를 씁니다.
❌ 실수 4. 이미 공유한 태그를 -f 로 옮긴다
동료가 이미 받아 간 태그를 옮기면 각자의 로컬에서 같은 이름이 다른 커밋을 가리키게 됩니다. 공유 전에만 -f 로 고칩니다.
❌ 실수 5. 태그를 지우면 원격도 같이 지워진다고 착각한다
git tag -d 는 로컬 태그만 지웁니다. 원격 태그는 git push origin --delete 이름 을 따로 실행해야 합니다.
❌ 실수 6. semver 자리를 상황과 다르게 올린다
기능을 추가했는데 PATCH 만 올리면 사용자가 "버그 수정만 있다" 고 오해합니다. 변경 폭에 맞는 자리를 올립니다.
❌ 실수 7. SNAPSHOT 버전에 태그를 단다
SNAPSHOT 은 계속 바뀌는 개발 버전이라 특정 커밋을 고정하는 태그의 목적과 맞지 않습니다. 태그는 SNAPSHOT 표시를 뗀 릴리스 커밋에만 답니다.
❌ 실수 8. describe 의 해시 부분을 버전으로 착각한다
v1.1.0-2-g400dfcd 에서 실제 버전은 v1.1.0 뿐이고, 뒤는 그 이후 위치를 나타내는 부가 정보입니다. 배포 버전 표기에는 태그 이름만 씁니다.
❌ 실수 9. archive 결과에 .git 이 포함된다고 걱정한다
git archive 는 처음부터 .git 없이 순수 파일만 담습니다. 불필요한 파일이 섞였다면 .gitattributes 의 export-ignore 를 점검합니다.
❌ 실수 10. detached HEAD 상태에서 계속 커밋한다
브랜치 없이 커밋을 쌓으면 다른 브랜치를 체크아웃하는 순간 그 커밋들을 찾기 어려워집니다. 배포본 확인만 하고 돌아오거나, 수정이 필요하면 바로 checkout -b 로 브랜치를 만듭니다.