"git describe"는 태그를 무시합니다.
다음 줄에서 :
$ git tag -n1
v1.8 Tagged the day before yesterday
v1.9 Tagged yesterday
v2.0 Tagged today
$ git describe
v1.9-500-ga6a8c67
$
누구든지 v2.0 태그가 "git describe"에서 사용되지 않는 이유와이를 수정하는 방법을 설명 할 수 있습니까? v2.0 태그는 이미 푸시되었으므로 삭제하고 다시 추가 할 수는 없을 것 같습니다.
git describe
기본적으로 주석이 달린 태그 만 사용합니다. --tags
경량 태그도 사용하도록 옵션 지정
올바른 커밋 ( git rev-parse HEAD
)을 확인했는지 확인하십시오 . 주석이 달린 태그는 git tag -a
. 당신이 경우에 git show <tagname>
당신은 만 커밋을 참조, 그것은 당신이 additionial 태그 메시지가 표시의 경우에 주석 태그의, 경량 태그입니다.
이것이 우리에게 일어 났을 때, 동일한 커밋에 두 개의 태그가 적용된 경우였습니다. 다음을 실행하여이 경우인지 확인할 수 있습니다.
# git log --oneline --decorate=short
deba4b4 (tag: v1.1.0.20.0, tag: v1.1.0.19.0) 001 New buildnumber
여기에는 버전 19에 대한 태그와 20에 대한 태그가 있습니다. 20은 19 이후에 태그되었지만 동일한 커밋에 대해 태그되었습니다. 이 경우 반환 된 설명
# git describe --tags
v1.1.0.19.0
왜 이렇게했는지는 모르겠지만 중복 태그로 작동하는 것처럼 보입니다.
이것이 발생할 수있는 또 다른 경우는 브랜치에서 "가까운"태그가있는 경우입니다. 이 사례는 이 블로그 게시물 에서 설명했습니다 .
이 문제는 모든 브랜치의 모든 태그를 git tag
표시 하고 현재 브랜치 에서 사용할 수있는 커밋에만 태그를 사용한다는 것 입니다.git describe
다음은 예입니다 (실제로 여기에 온 이유).
$ git tag | tail -n3
v0.4.0
v0.4.1
v0.4.2
사용 가능한 최신 태그가 표시 v0.4.2
되지만 이것은 내 출력입니다 git describe
.
$ git describe --tags
v0.4.0-2-acd334c
저는 개발 지점에 있습니다. 로그를 살펴보면 실제로 현재 브랜치에서 최신 태그를 사용할 수 없음을 알 수 있습니다.
$ git log --oneline --decorate=short | grep '\(tag\:' | head -n3
acd334c (tag: v0.4.0) Merge pull request #1061
988fe5e (tag: v0.3.6) Merge pull request #859
5f97274 (tag: v0.3.5) Merge pull request #646
그래서 제 경우에는 개발자들이 릴리스 에 태그 지정을위한 새 릴리스 브랜치 를 만들기로 결정했습니다 . 그 결과 개발 브랜치가 더 이상 태그로 최신 상태가 아닙니다.
그것이 도움이되기를 바라며 로그를 확인하는 아이디어에 대해 @eis에게 감사드립니다.
참조 URL : https://stackoverflow.com/questions/4154485/git-describe-ignores-a-tag
'UFO ET IT' 카테고리의 다른 글
Structs에서 Equals 메서드 재정의 (0) | 2021.01.14 |
---|---|
메시지 다이제스트, 메시지 인증 코드 및 HMAC의 차이점은 무엇입니까? (0) | 2021.01.14 |
CSS 요소가 다음과 같이 작동하도록 할 수 있습니까? (0) | 2021.01.14 |
Clojure가 Clojure로 명명 된 이유 (0) | 2021.01.14 |
TCP에서 푸시 플래그와 긴급 플래그의 차이점 (0) | 2021.01.14 |