9

抱歉标题模棱两可。如果有人能想出更好的东西,请编辑这个让我知道。

最近,我删除了一个 git 存储库并从服务器签出了一个新副本。不幸的是,在这样做的时候,我忘记了我正在使用git-new-workdir(我以为我已经克隆了我的 repo 检查了两次)。现在我不能在我的“workdir”中做任何事情:

$ git log
fatal: bad default revision 'HEAD'

并且 agit status让路了比它应该做的更多的变化。有人对我如何解决这个问题有任何想法吗?

更多信息:

跑步git fsck给了我以下信息:

$ git fsck
notice: HEAD points to an unborn branch (dipole_fix)
missing blob d92f4a4f53c95c375146d9623910d8ec214aa02f
missing blob 7d81095605082af3252a47b47d81e48d4a78a668
missing blob f5d21b7785c4bca4efaa91ce5ef5a8bd82d98792
missing blob 79d3ad61db697ca7e89dbfd089a472dab0a7851b
missing blob 2cf0e64cbc0a816d7dc1b26fef43c2eb7c4fb6ac

对于它的价值,我确实有一个远程分支,dipole_fix上面有分支。它应该(相对)是最新的。

更新 1——查看.gitworkdir 中的内容,我似乎有一些悬空的符号链接。

lrwxrwxrwx 1 mgilson mgilson     39 2012-04-26 10:43 remotes -> /orig_repo/.git/remotes
lrwxrwxrwx 1 mgilson mgilson     40 2012-04-26 10:43 rr-cache -> /orig_repo/.git/rr-cache
lrwxrwxrwx 1 mgilson mgilson     35 2012-04-26 10:43 svn -> /orig_repo/.git/svn

更新 2 - Naievly 链接remotes似乎/orig_repo/refs/remotes摆脱了“坏头”问题,但现在 agit status给了我:

error: unable to find d92f4a4f53c95c375146d9623910d8ec214aa02f
error: unable to find d92f4a4f53c95c375146d9623910d8ec214aa02f
error: unable to find f5d21b7785c4bca4efaa91ce5ef5a8bd82d98792
error: unable to find f5d21b7785c4bca4efaa91ce5ef5a8bd82d98792
error: unable to find 79d3ad61db697ca7e89dbfd089a472dab0a7851b
error: unable to find 79d3ad61db697ca7e89dbfd089a472dab0a7851b
4

2 回答 2

3

HEAD 很容易修复,只是git checkout一些东西。(或者你甚至可以使用编辑器编辑 .git/HEAD,放置一个 ref: 或一个命中哈希)。或者创建缺少的 dipole_fix本地分支。(您可以查看刚才提到的文件以查看它指向的位置...)

悬垂链接:修复它们或删除它们。

于 2013-06-27T00:38:35.667 回答
1

通过以下方式检查您当前的分支:

git branch 

如果它没有将任何分支显示为当前分支,请尝试:

git reset --hard <some branch>
于 2014-04-07T07:58:58.523 回答