导致此提交仍然被引用的原因是什么?

Kay*_*ute 6 git

我想从我的回购中删除一个巨大的二进制提交.

> git log --all -- '*.tiff'
commit 05f03aba18164c736182e612181f99ce04e38845
...
Run Code Online (Sandbox Code Playgroud)

它不是分支机构的一部分......

> git branch --all --contains 05f03aba
> (nothing)
Run Code Online (Sandbox Code Playgroud)

...,它没有被标记指向,并且它不能被reflog引用.(我已经清除了git reflog expire --expire=now --all)

然而,提交以某种方式被引用,因此没有被修剪:

> git fsck --unreachable
> (nothing)
Run Code Online (Sandbox Code Playgroud)

如何找出导致提交的原因?

Chr*_*ial 3

如果您的提交在 之前到达git log,您只需运行即可git log --source显示从何处到达您的提交。

\n\n

它可能由 \xe2\x80\x93 的备份引用,请参阅git filter-branch此问题了解更多详细信息:Remove refs/original/heads/master from git repo after filter-branch --tree-filter?

\n

  • `refs/original/refs/` 由 `git filter-branch` 创建,作为备份。参见例如http://stackoverflow.com/questions/7654822/remove-refs-original-heads-master-from-git-repo-after-filter-branch-tree-filte (3认同)