git describe
1. Git Describe란?
git describe
는 현재 커밋(또는 ref)이 가장 가까운 태그로부터 몇 번째 커밋인지, 어떤 커밋인지 요약해주는 명령어이다.- 주로 버전 관리, 릴리즈 스크립트 자동화, 디버깅 시 위치 파악 등에 활용됨.
2. 기본 출력 형식
<tag>_<N>_g<short-hash>
항목 | 설명 |
---|---|
| 가장 가까운 태그 이름 |
| 태그 이후 몇 번째 커밋인지 (0이면 태그 본인) |
| 해당 커밋의 Git short hash |
3. 자주 쓰는 옵션
3.1 --tags
git describe --tags
- 기본 동작은 annotated tag만 검색.
--tags
를 붙이면 lightweight tag도 포함하여 검색.
3.2 --abbrev=0
git describe --abbrev=0
- 가장 가까운 태그 이름만 출력하고, 커밋 수나 해시는 생략됨.
- 릴리즈 버전명만 필요할 때 유용.
3.3 --exact-match
git describe --exact-match
- 현재 커밋이 태그와 정확히 일치할 때만 태그 이름을 출력.
- 그렇지 않으면 아무 출력도 하지 않음.
4. 사용 예시
git describe # v2.0.0-2-gabc1234
git describe --tags # lightweight 포함
git describe --abbrev=0 # v2.0.0
git describe --exact-match # v2.0.0 (태그된 커밋일 때만)
5. 주의사항
git describe
는 기본적으로 annotated tag만 대상으로 함.- lightweight 태그까지 포함하고 싶으면
--tags
옵션 사용. - 스크립트/자동화에서는 보통
--tags --abbrev=0
조합 사용. - 태그가 없는 경우, 결과가 출력되지 않거나 에러 발생 가능성 있음.