检查推送标签是否在git遥控器上

lcb*_*lcb 63 git

任何人都知道如何在从本地推送标签后检查标签是否在git遥控器上?

似乎唯一的方法是获取遥控器.

Abe*_*ker 98

尝试

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

  • 如果你想在没有找到标签的情况下想要非零状态,请将`--exit-code`传递给`ls-remote`,例如`git ls-remote --exit-code --tags origin v1.2.3`. (10认同)
  • 谢谢,它完美无缺.但我还有另一个问题.我得到了这些结果:refs/tags/0.1,refs/tags/0.1 ^ {}.你知道第二个是什么吗? (8认同)

Die*_*ego 22

为了更准确地回答这个问题,要检查特定标签是否在给定的远程使用中:

git ls-remote <remote-name> refs/tags/<tag-name>
Run Code Online (Sandbox Code Playgroud)

  • 如何验证它与本地标签相同(即,它指向同一提交)? (2认同)
  • 如果要在脚本中执行此检查,例如在CI流程中,则可以传递--exit-code选项:git ls-remote --exit-code &lt;remote-name&gt; refs / tags / &lt;tag-name&gt;`如果标签在遥控器中,它将返回退出代码0;如果Git能够连接到遥控器但标签不存在,它将返回退出代码2;大概是退出代码。如果无法连接到遥控器,则为1。然后,您可以检查退出代码并根据结果执行逻辑。 (2认同)

HMa*_*gdy 8

对于像我这样的懒人,我以前是这样搜索的:

在远程标签上:

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

在本地标签上。

git tag -l  | grep TAG_NAME
Run Code Online (Sandbox Code Playgroud)