我想从Git存储库中删除所有标记。我该怎么做呢?
使用git tag -d tagname在本地删除标签tagname,并使用git push——tags更新git provider上的标签。
我试着:
git tag -d *
但是我看到*表示当前目录中的文件。
$ git tag -d *
error: tag 'file1' not found.
error: tag 'file2' not found.
...
假设我有很多标签,我想全部删除它们。
我想从Git存储库中删除所有标记。我该怎么做呢?
使用git tag -d tagname在本地删除标签tagname,并使用git push——tags更新git provider上的标签。
我试着:
git tag -d *
但是我看到*表示当前目录中的文件。
$ git tag -d *
error: tag 'file1' not found.
error: tag 'file2' not found.
...
假设我有很多标签,我想全部删除它们。
当前回答
对于使用PowerShell的Windows用户:
git tag | foreach-object -process { git tag -d $_ }
这将通过对返回的每一行执行git tag -d来删除git标签返回的所有标签。
其他回答
你还可以使用:
git tag -d $(git tag)
斯特凡的答案是不知道如何从远程删除标签。对于windows powershell,可以先删除远程标记,然后删除本地标记。
git tag | foreach-object -process { git push origin --delete $_ }
git tag | foreach-object -process { git tag -d $_ }
因为所有这些选项都只在linux中工作,下面是windows中必须处理这些问题的等效选项:
FOR /F usebackq %t IN (`git tag`) DO @git tag --delete %t
我必须删除带有前缀的标签
例如,我必须删除标签v0.0.1, v0.0.2, v0.0.3, v0.0.4, v0.0.5
git tag -d $(git tag -l "v0.0.*")
分解并解释上面的语句:
列出所有带有前缀的标签 Git标签-l "v0.0.*" 删除标签 Git标记-d $tag_names
这就是这个表述的原理
显示所有包含"v"的标签
git tag -l | grep v | xargs -n 1 sh -c 'echo "Processing tag $0\n" && git show -s $0'