Git - 致命:错误的默认修订' HEAD' &安培;通知:HEAD指向未出生的分支(主)

时间:2015-02-03 18:01:33

标签: git github version-control

我是这一切的新手,目前正在上课学习git。但是,我正在练习分支和合并。我创建了一个新的分支,它已切换,但我的计算机开始出现问题,这导致我关闭它并重新启动。当我回到工作岗位时,我回到了这里:

>git status
On branch master

Initial commit

Untracked files:
  (use "git add <file>..." to include in what

        .gitconfig
        AppData/
        Contacts/
        Creative Cloud Files/
        Desktop/
        Documents/
        Downloads/
        Favorites/
        Links/
        Music/
        NTUSER.DAT{9f037fb3-2982-11e3-93f1-b8c
        NTUSER.DAT{9f037fb3-2982-11e3-93f1-b8c00000001.regtrans-ms
        NTUSER.DAT{9f037fb3-2982-11e3-93f1-b8c00000002.regtrans-ms
        ntuser.dat{290469cc-4e2a-11e3-bebb-68500000002.regtrans-ms

我不知道ntuser.dat是什么意思,当我运行git fsck时,我的返回看起来像这样:

注意:HEAD指向未出生的分支(主人) 检查对象目录:100%(256/256),完成。 注意:没有默认参考

当我做git log时,我收到了致命的错误。我试图重置,似乎没有任何工作。有人可以请我帮忙吗?

此外,我正在使用PC,这要求我使用Windows的命令提示符。

1 个答案:

答案 0 :(得分:1)

看起来这件事发生了......

  1. 您在git init中运行了C:\Users\Sandy
  2. 您可能已做过其他事情。
  3. 您的计算机崩溃了。
  4. 你重新启动了。
  5. 无论你在#2中做了什么都失败了。
  6. 你现在看到的是一个没有提交的Git存储库和一个没有任何指向的主分支。在创建存储库之后,这是正常的。在这里,我现在可以重新创建它。

    $ mkdir foo
    $ cd foo
    $ git init
    Initialized empty Git repository in /Users/schwern/tmp/foo/.git/
    $ git log
    fatal: bad default revision 'HEAD'
    $ git status
    On branch master
    
    Initial commit
    
    nothing to commit (create/copy files and use "git add" to track)
    
    $ git fsck
    notice: HEAD points to an unborn branch (master)
    Checking object directories: 100% (256/256), done.
    notice: No default references
    

    要解决这个问题,您需要做的只是git addgit commit,并且正常进行。

    至于为什么你会在git status中看到所有垃圾,Git存储库会覆盖一个目录和所有子目录。如果您在git init中运行C:\Users\Sandy,则存储库将尝试跟踪主目录和所有子目录中的所有内容。 NTUSER.dat是Windows通常隐藏的普通Windows管理文件。 Git并不关心文件是什么,并向您展示一切。

    您可能不希望将整个主目录放在版本控制中。并不是说它会伤害任何东西,这是不切实际的。相反,像我一样,创建一个新目录并在那里运行git init

    至于主目录中的存储库,只需将其删除即可。 Git存储库存储在项目目录中的.git子目录中。删除C:\Users\Sandy\.git\即可完成。在上面的示例中,它将是foo/.git/

    PS您无法在文件上运行git init,它必须位于目录中。