注意:这不能解决常见问题(OP的问题),但是可以解决出现此错误消息的其他问题。我不想做新的问题只是为了写下这个答案,告诉我是否应该这样做:P
我发现,很可能是由于某些崩溃导致的损坏,即使.git
确实存在,我也会遇到此错误。
smar@aaeru ~/P/Nominatim> git status
fatal: Not a git repository (or any of the parent directories): .git
smar@aaeru ~/P/Nominatim [128]> ls .git
COMMIT_EDITMSG config* FETCH_HEAD HEAD index logs/ modules/ objects/ ORIG_HEAD packed-refs
因为我没有真正需要保留的东西,所以我只是以一种虚假的方式去做,并且...
smar@aaeru ~/P/Nominatim [128]> git init
Reinitialized existing Git repository in /home/smar/Projektit/Nominatim/.git/
不过仍然无法正常工作,例如git log
return fatal: bad default revision 'HEAD'
。遥控器在那里,所以我这样做了git fetch --all
,然后只是git reset --hard origin/master
为了让自己回到以前的回购状态。
请注意,如果有一些未提交的更改,可以使用来查看它们git status
,git diff
依此类推。然后git diff yourfile > patch
在运行重置之前。
至少对我而言,reflog(git reflog
)完全消失了。因此,如果您进行了重置,并且想要防止某些更改,那么我不确定重置后是否可以将其恢复。因此,请确保您拥有所有不会丢失的更改,最终只需在尝试此操作之前复制副本即可。
git init
但还要确保您的子目录都没有自己的.git
文件夹