问题是大量的shell定制。
如果我尝试使用git init
创建新的回购,则会给我fatal: bad default revision 'HEAD'
两次。
如果我git log
,它会三次给我同样的错误。
我已根据我发现的其他答案删除了~/.git
,~/.config
和~/.gitconfig
,说明我可能已在我的主目录中创建了回购。唯一没有给我这个问题的回购是我从别人那里克隆出来的回购。
我不确定我做了什么,除了在我的主目录中删除git信息中的任何内容。
根据要求:
jsw:~ jsw$ mkdir test
jsw:~ jsw$ cd test
jsw:test jsw$ git init
Initialized empty Git repository in /Users/jsw/test/.git/
fatal: bad default revision 'HEAD'
fatal: bad default revision 'HEAD'
jsw:test(master|23448707m) jsw$ cat .git/HEAD
ref: refs/heads/master
fatal: bad default revision 'HEAD'
fatal: bad default revision 'HEAD'
jsw:~ jsw$ git status
fatal: Not a git repository (or any of the parent directories): .git
答案 0 :(得分:5)
您可能会收到此错误,因为您的HEAD修订版没有任何提交,因此当您创建git log
时,它将无法在HEAD上找到任何提交。
请尝试:
mkdir test
cd test
git init
git commit -m 'Initial Commit' --allow-empty
git log
答案 1 :(得分:3)
你跑cat .git/HEAD
并回复:
ref: refs/heads/master
fatal: bad default revision 'HEAD'
fatal: bad default revision 'HEAD'
由于cat
不是git
命令,并且不关心您的HEAD
,我怀疑您已将shell配置为执行类似打印当前分支的名称的操作
实际上,查看shell提示符:
jsw:test(master|23448707m) jsw$
我很确定。
要么关闭你想要执行的任何shell魔法,修复它以便它知道如何处理新的存储库,或者只是在你第一次提交之前处理错误消息。
答案 2 :(得分:0)
请使用以下命令
git初始化 git commit -m'初始提交'--allow-empty git log
然后您运行reflog,您将看到ref#