Discuss / Git / 对于删除远程服务器tag语法的理解和疑惑

对于删除远程服务器tag语法的理解和疑惑

Topic source

在工作空间下,其实有一个隐藏文件.git(可用ls -a查看),这个文件里面就存储了对每次操作和文件的管理信息。其中,在路径refs/tags下就存储了所有的tags信息。所以,当从本地去删除远程服务器上的标签是直接从.git配置文件里面删除了该标签。我的疑惑在于这个冒号“:”是什么意思呢?是指.git/路径吗?

git push origin :refs/tags/v0.9

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]

写这个命令的人喜欢用冒号开头

冒号前面本来写的是你本地的分支名(或者对象,标签),冒号后面是远程分支名,现在冒号前面什么也没有,看起来就像是在远程标签前面加了个冒号一样,因为你推送了空给这个标签所以git认为你想删除这个标签

官方的解释:将冒号前面的空值推送到远程标签名,从而高效地删除它。

https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E6%89%93%E6%A0%87%E7%AD%BE


  • 1

Reply