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ąć.


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ąć”.


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.