删除多个git远程标记并推送一次
在Git中,如何在推之前删除多个标记删除多个git远程标记并推送一次,git,tags,Git,Tags,在Git中,如何在推之前删除多个标记 我知道如何一次只使用一个标签。不确定是否可以执行多个操作。通过指定要删除的所有标记,可以使用一个命令删除多个标记 git tag -d 1.1 1.2 1.3 然后可以推送所有已删除的标记。当然,在按下之前,您可以使用单独的命令删除标记 要推式删除标记,只需列出所有要删除的标记。该命令与删除一个标记的命令相同 git push --delete origin 1.1 1.2 1.3 要在本地删除多个标记,请执行以下操作: git标签-d 简单地说: gi
我知道如何一次只使用一个标签。不确定是否可以执行多个操作。通过指定要删除的所有标记,可以使用一个命令删除多个标记
git tag -d 1.1 1.2 1.3
然后可以推送所有已删除的标记。当然,在按下之前,您可以使用单独的命令删除标记
要推式删除标记,只需列出所有要删除的标记。该命令与删除一个标记的命令相同
git push --delete origin 1.1 1.2 1.3
要在本地删除多个标记,请执行以下操作: git标签-d 简单地说:
git tag -d TAG1 TAG2 TAG3
git push ${REMOTE_NAME:-origin} --delete TAG1 TAG2 TAG3
要远程删除多个标记,请执行以下操作:
git推送[-d |--delete][…]
简单地说:
git tag -d TAG1 TAG2 TAG3
git push ${REMOTE_NAME:-origin} --delete TAG1 TAG2 TAG3
TL;医生:
git tag -d TAG1 TAG2 TAG3
git push origin -d TAG1 TAG2 TAG3
如果您安装了
grep
和xargs
,我发现了一种简单的方法来实现这一点。我无耻地把这个从你手里拿走了
删除所有具有您要查找的模式的远程标记:
git tag | grep <pattern> | xargs -n 1 -I% git push origin :refs/tags/%
获取仍保留的远程标记:
git fetch
它将删除所有匹配的标记模式
//Delete remote:
git push -d origin $(git tag -l "tag_prefix*")
// Delete local:
git tag -d $(git tag -l "tag_prefix*")
// Examples:
git tag -d $(git tag -l "v1.0*")
git push -d origin $(git tag -l "*v3.[2]*-beta*")
如果您有太多的标签(如我们的例子),您可能希望这样做:
git tag -l > tags_to_remove.txt
然后在首选编辑器中编辑文件-查看并删除要保留的标记(如果有)
然后在本地运行它
git tag -d $(cat ./tags_to_remove.txt)
远程:
git push -d origin $(cat ./tags_to_remove.txt)
git-tag-d tag1 tag2 tag3…
我可以做git-push
多个吗?git-push-origin:tag1:tag2:tag3…
引用对该要点的评论;xargs
的-i%
参数抛出了一个非法的选项错误:将其替换为诸如-i%
之类的大写字母可以使其正常工作。很好!对于许多人来说,这将是git push origin--delete TAG1 TAG2 TAG3
你也可以将其重写为git push origin-d TAG1 TAG2 TAG3
只是为了给后代添加2p,这是两个命令,而不是一个:首先git tag-d…
然后git push origin--delete…
效果非常好。请记住,如果您计划在本地和远程删除,那么首先在远程上删除是有意义的,因为否则git将无法在本地找到标记。是否有方法删除所有与标记前缀不匹配的标记?