gpt4 book ai didi

git - 从 Git 中删除神秘的引用

转载 作者:太空狗 更新时间:2023-10-29 13:55:38 27 4
gpt4 key购买 nike

filter-branch 和 prune/gc 之后,仍然有一些不需要的提交。

它们不在我关心的分支上;上面一定有一些标签或其他东西。

我正在尝试弄清楚那是什么,然后将其删除。

但我似乎没有任何尝试。

$ git name-rev 1bdac1e1ad7ec61a4b05d3f91eb39bde61a4da1f #what's holding on?
1bdac1e1ad7ec61a4b05d3f91eb39bde61a4da1f original/refs/tags/1.0-rc80~1320^2~8^2~1
$ git rm -r refs/original
$ git name-rev 1bdac1e1ad7ec61a4b05d3f91eb39bde61a4da1f
1bdac1e1ad7ec61a4b05d3f91eb39bde61a4da1f original/refs/tags/1.0-rc80~1320^2~8^2~1
$ git update-ref -d original/refs/tags/1.0-rc80
$ git name-rev 1bdac1e1ad7ec61a4b05d3f91eb39bde61a4da1f
1bdac1e1ad7ec61a4b05d3f91eb39bde61a4da1f original/refs/tags/1.0-rc80~1320^2~8^2~1

(这是一个裸仓库。)

我如何删除 original/refs/tags/1.0-rc80,无论那是什么?

最佳答案

全名是 refs/original/refs/tags/1.0-rc80,它位于 refs/original 命名空间中。你非常接近这个命令:

git update-ref -d original/refs/tags/1.0-rc80

除了 update-ref 要求您拼出全名,refs/original/refs/tags/1.0-rc80

您可能有一些额外的 refs/original/* 名称,因为 git filter-branch 在更改它们之前会复制任何引用名称。您可以通过以下方式查看它们:

git for-each-ref refs/original

(您甚至可以使用 for-each-ref 生成删除它们的命令,或者您可以只使用 rm -rf .git/refs/original 并编辑.git/packed-refs 直接,但是 for-each-ref 方法在未来更有可能工作,如果/当 refs 以不同的方式打包时,加上你提到这是一个裸仓库,所以它们不在 .git 这里...)。

关于git - 从 Git 中删除神秘的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28130720/

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