对于含糊不清的标题感到抱歉。如果有人能想出更好的东西,请编辑一下让我知道。
最近,我删除了一个git存储库,并从服务器中检出了一个新的副本。不幸的是,当我这样做时,我忘记了我正在使用git-new-workdir
(我以为我克隆了我的回购邮件两次)。现在我在“workdir”中无能为力:
$ git log
fatal: bad default revision 'HEAD'
并且git 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 - 查看workdir中.git
的内容,似乎我有一些悬挂的符号链接。
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
联系起来似乎摆脱了“糟糕的头脑”问题,但现在git 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
答案 0 :(得分:2)
HEAD易于修复,仅git checkout
。 (或者您甚至可以使用编辑器编辑.git / HEAD,放置ref:或命中哈希)。或者创建缺少的dipole_fix 本地分支。 (你可以查看刚刚提到的文件,看看它指向的位置......)
悬空链接:修复它们或删除它们。
答案 1 :(得分:1)
通过以下方式检查您当前的分支机构:
git branch
如果它没有显示任何分支作为当前分支,则尝试:
git reset --hard <some branch>