2013-10-21 20 views
5

uruchamiając komendę git ls-remote wymienia następujące dane:Git oddział/nazwa tag^{}

e6c1ddea6ee8eefa9e96e349dd4fad4a48c16448 refs/tags/1.1 
1a3b5ae3a50ca2f24e5cd917cbf51d371f1dd01e refs/tags/1.1^{} 
81901877c5add523cd4a4bb8f51ad3bbbacbd686 refs/tags/1.2 
4681b1ae6ec71301019da13d1790c2f808c2c553 refs/tags/1.2^{} 

Czego ^{} na myśli wyjście?

+0

http://schacon.github.io/git/gitrevisions.html - Przyrostek^z pustą parą wyrazów oznacza obiekt może być znacznikiem i rekurencyjnie dereferencji tagu, dopóki nie zostanie znaleziony obiekt inny niż znacznik. –

+4

Zobacz odpowiedzi na te pytania: - http://stackoverflow.com/questions/12938972/what-does-mean-in-git - http://stackoverflow.com/questions/15472107/when -listing-git-ls-remote-why-theres-after-the-tag-name – Mattias

+0

możliwy duplikat [zduplikowanego tagu na pilocie?] (http://stackoverflow.com/questions/18510642/duplicated-tag-on- zdalny) – talles

Odpowiedz

5

Nie są częścią nazwy, ale raczej wskaźnikiem do git rev-parse, który powinien wyłuskać znacznik (i przy odrobinie szczęścia znaleźć zatwierdzenie, chociaż teoretycznie znacznik mógłby wskazywać na inny znacznik, a nawet drzewo lub blob, ale jeśli wskazuje na inny znacznik, ^{} kontynuuje obieranie warstw cebuli, dopóki nie trafi na tag inny niż znacznik).

git ls-remote (lub tak naprawdę sam pilot) używa tej składni, aby wysłać ci identyfikator commit-ID. (Nie jestem całkiem pewien, co się stanie, jeśli tag ostatecznie wskaże drzewo lub obiekt blob.)

+0

Czy wiesz, dlaczego git ma zarówno elementy 1.x, jak i 1.x^{}? – axiopisty

+4

Ponieważ jest to znacznik z adnotacjami, więc znacznikiem obiektu jest 'refs/tags/1.1' (a dokładniej' e6c1dde ... '). Pilot chce (raczej pomocniczo), aby uzyskać identyfikator zatwierdzenia, abyś mógł stwierdzić, czy masz już zatwierdzenie. – torek