删除与标记同名的远程分支

aWe*_*per 34 git

我有一个分支和名称的标签3.0.0.现在我如何只删除分支而不删除标签.

我试过了

git push origin --delete 3.0.0
error: dst refspec 3.0.0 matches more than one.
Run Code Online (Sandbox Code Playgroud)

Von*_*onC 40

你可以推送完整的分支 refspec:

git push origin :refs/heads/3.0.0
# shorter:
git push origin :heads/3.0.0
Run Code Online (Sandbox Code Playgroud)

那只会引用一个分支,而不是tag(refs/tags/3.0.0).

这里refspec在' :' 前面没有来源:这意味着HEAD.
:refs/heads/3.0.0HEAD:refs/heads/3.0.0.
这意味着你需要推送检查正确的分支.

  • @ try-catch-finally我不会说"唯一的方法"[:-)`git push --delete refs/heads/3.0.0`或`git push --delete heads/3.0.0`也应该有效... (2认同)

Fel*_*rez 5

我来这里是为了寻找一种删除与分支同名的远程标签的方法。根据上面的巨人评论,我发现这有效:

git push <remote> :refs/tags/<mytag>
# or
git push origin :tags/<mytag>
Run Code Online (Sandbox Code Playgroud)