我有一个代码库,其中包含来自另一个项目的一堆提交,且这些提交在当前项目中没有任何分支。它们只是显示在历史记录中彼此连接但未连接到项目中的任何分支。
因此,如果我执行
(我相信这些提交是在对远程gitolite3存储库进行更改并在其状态出错时进行提取时出现的。)
我想将它们从提交数据库中删除,因为它们根本不属于这里。
我尝试过
这似乎与完全从Git数据库中删除提交相关,但我找不到任何reflog或分支引用这些提交,以防止修剪将其删除。我不想只是去删除数据库中的对象,这似乎是一种不好的做法。
因此,如果我执行
git branch --contains <commit hash>
,它不返回任何内容。(我相信这些提交是在对远程gitolite3存储库进行更改并在其状态出错时进行提取时出现的。)
我想将它们从提交数据库中删除,因为它们根本不属于这里。
我尝试过
git prune
和git reflog expire --expire=now --expire-unreachable=now --all
之前和之后,但它们不会将其删除。我还尝试了git gc
,但那也没有帮助。这似乎与完全从Git数据库中删除提交相关,但我找不到任何reflog或分支引用这些提交,以防止修剪将其删除。我不想只是去删除数据库中的对象,这似乎是一种不好的做法。
git tag --contains
进行检查。如果你的 Git 版本不太旧,git for-each-ref --contains <commit>
将会列出分支、标签以及其他引用。 - torek