어떤 git 태그를 보여주고 있습니까? 찾는 데 문제가

현재 체크 아웃 된 태그를 찾는 데 문제가 있습니다.

내가 할 때 :

git checkout tag1
git branch

어떤 태그를 사용 중인지 알 수 없습니다. 그것은 단지 기록합니다 :

* (no branch)
master

체크 아웃 된 태그를 찾을 수 있습니까? 위의 예에서 이것은입니다 tag1.



답변

편집 : Jakub Narębski에는 더 많은 자식이 있습니다. 다음과 같은 훨씬 간단한 명령이 완벽하게 작동합니다.

git describe --tags

(또는 --tags주석이 달린 태그를 체크 아웃 한 경우 태그가 없으면 내 태그가 가벼워서 –tags가 필요합니다.)

원래 답변은 다음과 같습니다.

git describe --exact-match --tags $(git log -n1 --pretty='%h')

더 많은 깃 푸를 가진 사람은 더 우아한 해결책을 가질 수 있습니다 …

이는 git-log체크 아웃 한 것부터 로그 를 보고 한다는 사실을 활용합니다 . %h약식 해시를 인쇄합니다. 그런 다음 git describe --exact-match --tags해당 커밋과 정확히 일치하는 태그 (경량 또는 주석)를 찾습니다.

$()위 의 구문은 bash 또는 이와 유사한 것을 사용한다고 가정합니다.


답변

이것은 나를 위해 일했다 git describe --tags --abbrev=0


답변

현재 HEAD (또는 커밋)의 모든 태그 표시

git tag --points-at HEAD


답변

git describeA는 도자기 당신이 피해야 명령은 :

http://git-blame.blogspot.com/2013/06/checking-current-branch-programatically.html

대신에 나는 다음을 사용했다.

git name-rev --tags --name-only $(git rev-parse HEAD)


답변

태그를 체크 아웃하면 “분리 된 헤드”가 있습니다. 일반적으로 Git의 HEAD 커밋은 현재 체크 아웃 한 지점에 대한 포인터입니다. 그러나 로컬 브랜치 (예 : 태그 또는 원격 브랜치) 이외의 것을 체크 아웃하면 “분리 된 헤드”가 있습니다. 실제로는 브랜치에 있지 않습니다. 머리가 분리 된 상태에서는 커밋하지 마십시오.

수정하지 않으려면 태그를 확인하십시오. 파일의 내용을 검사 중이거나 태그에서 프로젝트를 빌드하려는 경우 커밋하지 않는git checkout my_tag 한 파일 을 사용 하고 작업하는 것이 좋습니다 . 파일 수정을 시작하려면 태그를 기반으로 분기를 작성해야합니다.

$ git checkout -b my_tag_branch my_tag

my_tag_branch에서 시작하는 이라는 새 분기를 만듭니다 my_tag. 이 지점에서 변경 사항을 커밋하는 것이 안전합니다.


답변

git log --decorate

현재 체크 아웃 된 커밋을 가리키는 참조가 무엇인지 알려줍니다.


답변