从GIT存储库中删除外部提交



i有一个存储库,其中包含来自其他项目的一堆投入,而当前项目中的任何分支都不在。他们只是出现在彼此相连的历史中,但没有连接到项目中的任何分支。

因此,如果我执行git branch --contains <commit hash>,它将一无所获。

(我相信它们在对远程Gitolite3存储库进行一些更改时到达那里,并在其状态错误时获取(。

我想从提交数据库中删除它们,因为它们根本不属于这里。

我该怎么做?

我在git reflog expire --expire=now --expire-unreachable=now --all之前和之后尝试过git prune,但不会删除它们。我也尝试过git gc,但这也没有帮助。

这似乎与完全删除GIT数据库中的提交有关,但是我在反复群中找不到任何内容或参考这些提交的分支,这会阻止Prune删除它们。我讨厌只需要去删除数据库的对象,这似乎是一种做事的不好方法。

可能导致 git gc不删除提交的另一件事是指参考它或包含它的链条。

git tag --list # shows the tags
git tag -d <extraneous tag> # removes any such tags
git gc # then deletes the extraneous commits

这是由相关帖子删除未连接到分支的提交

提出的。

最新更新