gpt4 book ai didi

git - 如何删除 git 中格式错误的远程分支/标签?

转载 作者:太空狗 更新时间:2023-10-29 14:12:58 25 4
gpt4 key购买 nike

我不知道它是怎么发生的,但不知何故,当我运行 git ls-remote 命令时,我们的远程仓库有这样命名的分支和标签:

refs/heads/abc^{}
refs/tags/def^{}

而且我似乎无法以通常的方式删除它们:

git push origin :refs/heads/abc^{} 
fatal: remote part of refspec is not a valid name in :refs/heads/abc^{}

如何删除这些格式错误的远程分支?

最佳答案

那不是一个分支,它是错误分支的结果:

server$ echo echo 2e79bc84c11eda5d73add5a9dfc6bf03c50c432d > refs/heads/oogly

在这种情况下,我选择的 SHA-1 是带注释的标签的 SHA-1。你不能让“git branch”或“git checkout”指向标签,它们总是剥离到提交,但你可以获得一个非 git 感知的工具(比如 echo 在这个case) 来制作断枝。

然后,在客户端:

client$ git ls-remote
[snip]
d1574b852963482d4b482992ad6343691082412f refs/heads/master
2e79bc84c11eda5d73add5a9dfc6bf03c50c432d refs/heads/oogly
676699a0e0cdfd97521f3524c763222f1c30a094 refs/heads/oogly^{}
[snip]

删除服务器上的实际分支(在本例中为 oogly,在您的分支中为 abc)将使客户端上的“剥离标签”也消失。请注意,如果您想保存标签,您应该将标签指向它,如果还没有的话。

这首先是如何在服务器上创建的,我不知道。

请注意,这对于(带注释的)标签来说是完全正常的:服务器同时提供标签及其 SHA-1,以及它指向的基础对象的 SHA-1。语法记录在 gitrevisions 中:

   <rev>^{}, e.g. v0.99.8^{}
A suffix ^ followed by an empty brace pair means the object could
be a tag, and dereference the tag recursively until a non-tag
object is found.

关于git - 如何删除 git 中格式错误的远程分支/标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30055311/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com