如何查看远程标签?

cpr*_*ack 109 git atlassian-sourcetree

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

创建标签时,您可以选择"将标签推送到:...",但如何在创建标签后知道标签是否已被推送?我可以在本地看到我的所有标签,但我需要确保它们存在于远程中,以便其他开发人员可以将它们拉出来.

Lan*_*dys 131

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

git ls-remote --tags origin
Run Code Online (Sandbox Code Playgroud)

你可以列出当地的标签tag.

git tag
Run Code Online (Sandbox Code Playgroud)

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

  • @shiouming 这意味着标签已被注释。当您创建带注释的标签时,git 会创建另一个指向原始提交的提交。原始提交由末尾的括号表示。 (4认同)
  • @cprcrack所以你问Atlassian SourceTree是否提供了在GUI中查看远程标签的功能,对吧?我看起来粗糙,似乎没有.但是为什么不点击菜单`Actions - > Open in Terminal`,然后输入`git ls-remote --tags origin`并运行? (2认同)
  • @Landys谢谢,这很有用。列出远程标记时,我看到重复输入。它们具有差异ID,但标记名相同,但后缀^ {}除外。例如:release-v1.0,release-v1.0 ^ {},release-v1.1,release-v1.1 ^ {}等。您知道这些额外的条目是什么吗?尽管额外的条目具有diff ID,但是git log <ID>却提供了相同的输出。 (2认同)

Von*_*onC 94

即使没有克隆或获取,您也可以使用以下命令检查上游存储库中的标记列表git ls-remote:

git ls-remote --tags /url/to/upstream/repo
Run Code Online (Sandbox Code Playgroud)

(如"在标签名称后面列出git-ls-remote为什么有"时所示^{})

请注意,您始终可以使用(git 1.8.3 +,2013年4月)在一个命令中推送您的提交标签:

git push --follow-tags
Run Code Online (Sandbox Code Playgroud)

请参阅同时推送git提交和标记.


关于Atlassian SourceTree:

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

SRCTREEWIN-4015自2015年12月起登录了RFE(增强请求).

一个简单的解决方法:

看到只有未按下标签的列表?

git push --tags

或者选中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

这样,您将"确定它们存在于远程中,以便其他开发人员可以将它们拉出来".

  • 这很好,但我问的是如何用Atlassian SourceTree知道它,而不是git命令行. (3认同)