Jak zobaczyć zdalne tagi?

141

W Atlassian SourceTree, jak sprawdzić, które tagi są tylko lokalne, a które również zdalne?

Podczas tworzenia tagu otrzymujesz opcję „Wypchnij tag do: ...”, ale jak sprawdzić, czy tag został przekazany, czy nie po utworzeniu? Widzę wszystkie moje tagi lokalnie, ale muszę się upewnić, że są one obecne w zdalnym, aby inni programiści mogli je wyciągnąć.

cprcrack
źródło
Zaktualizowałem poniższą odpowiedź, aby uwzględnić w szczególności Atlassian SourceTree.
VonC,

Odpowiedzi:

124

Nawet bez klonowania lub pobierania możesz sprawdzić listę tagów w głównym repozytorium za pomocą git ls-remote:

git ls-remote --tags /url/to/upstream/repo

(jak zilustrowano w „ Kiedy wymieniasz git-ls-remote, dlaczego ^{}po nazwie tagu znajduje się„ ”? ”)

xbmono ilustruje w komentarzach, że cytaty są potrzebne:

git ls-remote --tags /some/url/to/repo "refs/tags/MyTag^{}"

Zauważ, że zawsze możesz przekazać swoje zatwierdzenia i tagi jednym poleceniem (git 1.8.3+, kwiecień 2013):

git push --follow-tags

Zobacz Jednoczesne przekazywanie zatwierdzeń i tagów git .


W szczególności w odniesieniu do Atlassian SourceTree:

Zauważ, że z tego wątku SourceTree pokazuje TYLKO lokalne tagi.

Istnieje zgłoszenie RFE (Request for Enhancement) SRCTREEWIN-4015od grudnia 2015 r.

Proste obejście:

zobaczyć listę tylko niezakupionych tagów?

git push --tags

lub zaznacz Push all tagspole „” w oknie dialogowym „Push”, wszystkie tagi zostaną przesłane do pilota.

https://community.atlassian.com/tnckb94959/attachments/tnckb94959/sourcetree-questions/10923/1/Screen%20Shot%202015-12-15%20at%208.49.48%20AM.png

W ten sposób będziesz „pewien, że są one obecne w zdalnym trybie, aby inni programiści mogli je wyciągnąć”.

VonC
źródło
3
To świetnie, ale pytałem o to, jak to wiedzieć, korzystając z Atlassian SourceTree, a nie z wiersza poleceń git.
cprcrack
Próbowałem refs/tags/MyTag^{}uzyskać identyfikator zatwierdzenia powiązany z tym tagiem, ale to polecenie git ls-remotenic nie zwraca. Czy jest jakiś sposób, aby uzyskać identyfikator zatwierdzenia wyreferencjonowanego tagu?
xbmono
@xbmono To powinno być stackoverflow.com/a/12939216/6309
VonC
1
@xbmono Dobry chwyt! W odpowiedzi zawarłem Twój komentarz, aby uzyskać lepszą widoczność.
VonC
150

Możesz wyświetlić listę tagów w zdalnym repozytorium za pomocą ls-remote, a następnie sprawdzić, czy tam jest. Przypuśćmy, że nazwa zdalnego odwołania znajduje originsię poniżej.

git ls-remote --tags origin

Możesz też wyświetlać tagi lokalne za pomocą tag.

git tag

Możesz porównać wyniki ręcznie lub w skrypcie.

Landys
źródło
1
@VonC Jesteś szybszy. :) Próbuję rozwiązać więcej gitpytań, aby się z nimi zapoznać git. :)
Landys
Żaden problem: w ten sposób uczę się Gita od końca 2008 roku.
VonC
1
To świetnie, ale pytałem o to, jak to wiedzieć, korzystając z Atlassian SourceTree, a nie z wiersza poleceń git.
cprcrack
3
@cprcrack Więc pytałeś, czy Atlassian SourceTree udostępnia funkcję przeglądania zdalnych tagów w GUI, prawda? Mam szorstki wygląd i wygląda na to, że nie. Ale dlaczego nie po prostu kliknąć menu Actions -> Open in Terminal, a następnie wpisać git ls-remote --tags origini uruchomić?
Landys
2
@Landys Dzięki, to przydatne. Podczas wyświetlania zdalnych tagów widzę podwójne wpisy. Mają identyfikator różnicy, ale tę samą nazwę tagu, z wyjątkiem przyrostka ^ {}. Przykład: release-v1.0, release-v1.0 ^ {}, release-v1.1, release-v1.1 ^ {}, itd. Czy wiesz, co to za dodatkowe wpisy? Chociaż dodatkowe wpisy mają identyfikator diff, jednak git log <ID> daje te same dane wyjściowe.
shiouming