如何创建 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
我在创建 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