3

在提交期间断电后,我的 git 存储库中的一个分支损坏了。我做了git fsck --full并删除了所有空的目标文件,直到fsck给了我:

Checking object directories: 100% (256/256), done.
Checking objects: 100% (894584/894584), done.
error: refs/heads/git-annex does not point to a valid object!
Checking connectivity: 862549, done.

然后我过去常常在分支git fsck --lost-found上找到我最后一个好的悬空提交。git-annex我检查了一下。

我希望这是我的替代git-annexHEAD。我试过git checkout -b git-annex了,但发现分支已经存在。所以我尝试git branch -d git-annex了但得到了error: Couldn't look up commit object for 'refs/heads/git-annex'.

如何摆脱损坏的git-annex分支以将其设置为我想要的提交?我已经尝试过删除.git/refs/heads/git-annex,但这不起作用。谢谢。

4

1 回答 1

3

这对我有用(在“作弊”插入损坏的分支之后,并在尝试删除它时看到相同的错误):

git branch -f broked HEAD  # or some other valid point
git branch -d broked

第二个命令抱怨它从 .git/packed-refs 中删除损坏的 ref (如果删除 .git/refs/heads/git-annex 没有帮助,我认为它必须在其中)。(但是分支名称“git-annex”让我想知道您是否正在使用git-annex,例如在存储库之外存储大文件的东西。我自己没有使用过它,并且不确定这是否会改变任何东西。 )

于 2013-08-26T15:16:41.663 回答