0

我无法创建 git 别名来远程删除标签。

我有以下内容.gitconfig

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

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]         $1

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

4

1 回答 1

3

我通过在 StackOverflow 上四处寻找并将其他一些答案放在一起解决了这个问题。

可能还有其他解决方案,但是将别名转换为shell 命令成功地通过以下方式传递标记参数:

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

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

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

输出:

$ git deltag testtag
Deleted tag 'testtag' (was be73a23)
To ssh://.......
 - [deleted]         testtag
于 2016-06-02T06:00:28.223 回答