我在创建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
此别名使用的正确语法是什么?
答案 0 :(得分: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