Як бачити віддалені теги?


136

Як дізнатися, які теги є лише локальними, а які віддаленими - в Atlassian SourceTree?

Створюючи тег, ви отримуєте опцію "Надіслати тег до: ...", але як дізнатися, чи тег був натиснений чи ні після його створення? Я можу бачити всі свої теги локально, але мені потрібно бути впевненим, що вони присутні у віддаленому режимі, щоб інші розробники могли їх витягнути.


Я оновив свою відповідь нижче, щоб спеціально звернутися до Atlassian SourceTree.
VonC

Відповіді:


121

Навіть не клонувавши чи виймаючи, ви можете перевірити список тегів на репо за течією за допомогою git ls-remote:

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

(як показано в " Переліченні git-ls-remote, чому існує ^{}ім'я тегу? ")

xbmono в коментарях ілюструє, що цитати потрібні:

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

Зауважте, що ви завжди можете натискати ваші коміти та теги в одній команді за допомогою (git 1.8.3+, квітень 2013):

git push --follow-tags

Див. Розділ " Push git" виконує посилання та теги одночасно .


Що стосується Atlassian SourceTree, зокрема:

Зауважте, що з цієї теми, SourceTree ТІЛЬКИ показує локальні теги.

Існує RFE (Запит на удосконалення), який увійшов SRCTREEWIN-4015з грудня 2015 року.

Просте вирішення:

бачити список лише нерозпущених тегів?

git push - теги

або встановіть Push all tagsпрапорець "" у діалоговому вікні "Натиснути", і всі теги будуть перенесені на ваш пульт.

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

Таким чином, ви будете "впевнені, що вони присутні у віддаленому режимі, щоб інші розробники могли їх витягнути".


3
Це чудово, але я запитував про те, як знати це за допомогою Atlassian SourceTree, а не командного рядка git.
cprcrack


Я намагався refs/tags/MyTag^{}прив’язати ідентифікатор фіксації до цього тегу, але ця команда git ls-remoteнічого не повертає. Чи є спосіб отримати ідентифікатор фіксації тегу dereferenced?
xbmono

@xbmono Це повинно бути stackoverflow.com/a/12939216/6309
VonC

1
@xbmono Хороший улов! Я включив ваш коментар у відповідь для більшої наочності.
VonC

145

Ви можете перелічити теги у віддаленому сховищі ls-remote, а потім перевірити, чи він там є. Припустимо, ім'я віддаленого довідника полягає originв наступному.

git ls-remote --tags origin

І ви можете перелічити локальні теги tag.

git tag

Ви можете порівняти результати вручну або в сценарії.


1
@VonC Ти швидший. :) Я намагаюся вирішити більше gitпитань, щоб ознайомитись git. :)
Лендіс

Немає проблем: саме так я
вчу

1
Це чудово, але я запитував про те, як знати це за допомогою Atlassian SourceTree, а не командного рядка git.
cprcrack

2
@cprcrack Отже, ви запитували, чи надає Atlassian SourceTree функцію перегляду віддалених тегів у графічному інтерфейсі, правда? У мене шорсткий вигляд, і здається, ні. Але чому б не просто натиснути на меню Actions -> Open in Terminal, а потім набрати git ls-remote --tags originта запустити?
Лендіс

2
@Landys Дякую, це корисно. Перелічуючи віддалені теги, я бачу подвійні записи. Вони мають ідентифікатор diff, але те саме ім'я тегу, за винятком постфіксу ^ {}. Приклад: release-v1.0, release-v1.0 ^ {}, release-v1.1, release-v1.1 ^ {} тощо. Чи знаєте ви, що це за додаткові записи? Хоча додаткові записи мають різний ідентифікатор, але git log <ID> дає такий же вихід.
shiouming
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.