본문 바로가기

Develop/Etc

[GIT] 최신 tag version 가져오기

]$ git describe --tags --abbrev=0

위 명령을 이용하게 되면 최신 git version 을 가져올 수 있다.

but. 만약 특정 문자를 사용하여서 tagging을 하였을 경우 해당 tag를 가져오려고 한다면 ?

예를 들어 staging 소스와 deploy 소스를 따로 tagging 하여서 사용 하고 있다고 한다면 ?

최신 staging version과 deploy 버전을 관리해줄 필요가 있음.

이릴때는 match 속성을 사용

]$ git describe --tags --abbrev=0 --match staging-*

위와 같이 사용하게 되면 staging- 으로 시작하는 최신 버전을 가져오게 됨.

물론 이 경우는 모두 해당 레파지토리 폴더 안에서 일어났을 때 이야기다.


사용 케이스가 deploy 프로세스 상에서 값을 추출하는 경우이다.

저 스크립트들의 경우는 해당 소스코드 상에서 최신 tag version을 가져오는 경우이다.

이 경우 예를 들자면..

]$ git clone -b staging-v0.5 [git_repository_path]

명령을 통해서 가져왔을 경우 위 명령을 사용할 경우 tag version은 staging-v0.5 가 나오게 될것이다.

최신 버전은 staging-v0.7이 더라도 소스를 가져온 시점에서 최신 버전을 가져오는 것.


배포시스템에서는 배포하려는 버전의 소스코드를 clone으로 땡겨오기 때문에

위 스크립트를 사용해서 rollback 도 가능하다.


사용 예:

]$ LATEST=$(git describe --tags --abbrev=0 --match staging-*)

]$ git clone -v $LATEST [git_repository_path] $LATEST

]$ rm -rf html && ln -s $LATEST html