如何创建 git 别名以远程删除标签?

How can I create a git alias to delete a tag remotely?

我在创建 git 别名以远程删除标签时遇到问题。

我的 .gitconfig 中有以下内容:

[alias]
  deltag = push origin :refs/tags/

运行 在本地删除标签后的 deltag 别名(使用 git tag -d testtag)导致此错误:

$ git deltag testtag
error: src refspec testtag does not match any.
error: failed to push some refs to 'ssh://........'

尝试 运行 此别名 将其本地删除之前会导致以下结果:

$ git deltag testtag
remote: warning: Deleting a non-existent ref.
To ssh://........
- [deleted]         

此别名的正确语法是什么?

我通过在 Whosebug 上搜索并将其他一些答案放在一起解决了这个问题。

可能还有其他解决方案,但是将别名转换为 shell 命令 成功地通过了标签参数:

[alias]
  deltag = !sh -c 'git push origin :refs/tags/' -

或者更好的是,将本地和远程删除合并为一个别名:

[alias]
  deltag = !sh -c 'git tag -d  && git push origin :refs/tags/' -

输出:

$ git deltag testtag
Deleted tag 'testtag' (was be73a23)
To ssh://.......
 - [deleted]         testtag