태그와 버전
4. 응용 변형 예제
4.1 빌드 번호를 jar 매니페스트에 넣기
CI 스크립트에서 git describe --tags --always --dirty 결과를 잡아 매니페스트 값으로 넣으면 어느 jar 가 어느 커밋에서 만들어졌는지 추적할 수 있습니다.
Implementation-Version: 1.1.0-2-g400dfcd메이븐은 git-commit-id-plugin 같은 플러그인으로 이 값을 빌드마다 자동 생성합니다.
4.2 릴리스 체크리스트 스크립트
mvn versions:set -DnewVersion=1.2.0 로 버전을 확정하고 커밋한 뒤 git tag -a v1.2.0 -m "릴리스 1.2.0" 을 답니다. 이어서 mvn versions:set -DnewVersion=1.3.0-SNAPSHOT 으로 다음 개발 버전을 엽니다.
4.3 태그 기반 배포 자동화
CD 파이프라인에서 v* 패턴 태그 push 를 트리거로 걸어 두면, 브랜치 push 와 달리 정식 배포 태그를 달 때만 배포가 실행됩니다. 실수로 커밋마다 배포되는 상황을 막습니다.
4.4 잘못 붙인 태그 정리
아직 push 하지 않은 태그면 git tag -d 이름 으로 지우고 다시 답니다. 이미 push 했다면 로컬 삭제와 별도로 git push origin --delete 이름 을 실행해야 팀 전체 저장소가 맞춰집니다.
4.5 폐쇄망 반출용 아카이브
git archive --format=tar.gz v1.2.0 -o app-1.2.0.tar.gz 로 묶어 반입 매체로 옮기고, 서버에서 tar -xzf app-1.2.0.tar.gz 로 풉니다. .gitattributes 에 export-ignore 를 적어 두면 테스트 코드나 문서를 archive 결과에서 뺄 수 있습니다.