如何查看远程标签?


136

在Atlassian SourceTree中,如何知道哪些标签只是本地的,哪些标签也位于远程的?

创建标签时,您会获得“将标签推送到... ...”选项,但是如何知道创建标签后是否将其推送?我可以在本地看到我的所有标签,但是我需要确保它们在远程存在,以便其他开发人员可以提取它们。


我已经更新了下面的答案,专门针对Atlassian SourceTree。
VonC

Answers:


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年4月)在一个命令中推送提交标记:

git push --follow-tags

请参阅同时推送git commits和标签


关于Atlassian SourceTree:

请注意,在此线程中,SourceTree仅显示本地标签。

SRCTREEWIN-4015自2015年12月以来,已登录RFE(增强请求)。

一个简单的解决方法:

看到仅未按下标签的列表?

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^{}获取链接到该标签的提交ID,但此命令git ls-remote未返回任何内容。有什么方法可以获取已取消引用的标记的提交ID?
xbmono


1
@xbmono好抓住!我已将您的评论包含在答案中,以提高知名度。
VonC

145

您可以使用列出远程存储库中的标签ls-remote,然后检查它是否在那里。假设远程引用名称origin如下所示。

git ls-remote --tags origin

您可以使用列出本地标签tag

git tag

您可以手动或在脚本中比较结果。


1
@VonC您更快。:)我正在尝试解决更多git问题以使其熟悉git。:)
Landys 2014年

没问题:那就是如何我一直在学习的Git自2008年底
VonC

1
太好了,但我想知道如何使用Atlassian SourceTree(而不是git命令行)来了解它。
cprcrack

2
@cprcrack所以您在问Atlassian SourceTree是否提供了在GUI中查看远程标签的功能,对吗?我有一个粗略的外观,似乎没有。但是,为什么不单击菜单Actions -> Open in Terminal,然后键入git ls-remote --tags origin并运行呢?
Landys 2014年

2
@Landys谢谢,这很有用。列出远程标记时,我看到重复输入。它们具有差异ID,但标记名相同,但后缀^ {}除外。例如:release-v1.0,release-v1.0 ^ {},release-v1.1,release-v1.1 ^ {}等。您知道这些多余的条目是什么吗?尽管额外的条目具有diff ID,但是git log <ID>却提供了相同的输出。
shiouming
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.