具体错误

error: dst refspec xxxx matches more than one.
error: failed to push some refs to 'xxxxxx.git'

问题原因

当远程仓库同时存在相同名称的 branch 和 tag 时,不指明绝对路径的前提下,操作这个名称的 branch 和 tag 就会出现这个问题。

解决办法

指明操作对象的绝对路径:

对象路径
branchrefs/heads/分支名称
tagrefs/tags/标签名称
# 删除分支
git push origin :refs/heads/分支名称

# 删除标签
git push origin :refs/tags/标签名称

参考