Skip to main content

git describe


1. Git Describe란?

  • git describe는 현재 커밋(또는 ref)이 가장 가까운 태그로부터 몇 번째 커밋인지, 어떤 커밋인지 요약해주는 명령어이다.
  • 주로 버전 관리, 릴리즈 스크립트 자동화, 디버깅 시 위치 파악 등에 활용됨.

2. 기본 출력 형식

<tag>_<N>_g<short-hash>

항목

설명

<tag>

가장 가까운 태그 이름

<N>

태그 이후 몇 번째 커밋인지 (0이면 태그 본인)

g<해시>

해당 커밋의 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 조합 사용.
  • 태그가 없는 경우, 결과가 출력되지 않거나 에러 발생 가능성 있음.