2012-10-17 5 views
36

git ls-remote 명령의 마지막에 두 개의 이상한 문자가 나타났습니다.이게 무슨 뜻인지 궁금합니다.^{}는 git에서 무엇을 의미합니까?

0e4c39557ccb6789173c refs/tags/2011-11-04 
966f8df553f18c486820 refs/tags/2011-11-04^{} 

이^{}의 의미는 무엇입니까? 또한 왜이 자식 태그가 중복 된 것처럼 보입니까?

답변

32

^{} 표기법은 gitrevisions 설명서에 설명한다 :

<rev>^{}, e.g. v0.99.8^{} 

빈 괄호 쌍 뒤에 접미사^오브젝트가 태그 될 수 있음을 의미하고, 태그 역 참조 재귀 비 태그까지 개체가 발견되었습니다. 귀하의 경우 0e4c39557ccb6789173c

태그 객체이며 966f8df553f18c486820는 결국에 역 참조하는 객체 (커밋)입니다. git show-ref 매뉴얼에서

:뿐만 아니라 개체 ID로

-d 
--dereference 

역 참조 태그입니다. "^ {}"이 (가) 추가 된 상태로 표시됩니다.

+5

더 자세한 설명은이 중복 질문에서 찾을 수 있습니다. http://stackoverflow.com/a/15472310/83284 – pedromanoel

3

git ls-remote에는 git 2.8 (2016 년 3 월)의 새 필터가 있습니다.

Thomas Gummerer (tgummerer)에 의해 commit 99c08d4, commit ba5f28b, commit 80b17e5, commit 40a8852, commit 54813bd (2016년 1월 18일)를 참조하십시오.
제안자 : pedro rijo (pedrorijo91). 당신이 출력 HEAD처럼 벗겨 태그 또는 pseudorefs을 표시하지 않습니다

git ls-remote --refs 

만 태그를 게재 할 수 있음을 의미합니다
(commit bd6934aJunio C Hamano -- gitster --에 의해 합병, 2016년 2월 3일)

.