我有一个主分支和一个dev分支用于当前开发(本地工作副本)。我需要将master中的更改合并到我的dev分支上。在合并之前,我运行了git stash并发现了以下错误:
fatal: Not a git repository (or any of the parent directories): .git
要调查此错误,我运行了以下命令:
git status
git branch
git remote -v
。全部产生了相同的错误fatal: Not a git repository (or any of the parent directories): .git
我也尝试重置我的分支git remote set-url origin https://github.com/Connexions/oer.exports.git
的来源,这会产生相同的结果:fatal: Not a git repository (or any of the parent directories): .git
我无法将本地工作目录中的任何更改提交到我的dev分支。
有没有人对如何纠正这个问题有任何建议。
答案 0 :(得分:13)
检查以下文件:
your_repo_dir/.git/HEAD
如果此内容似乎已损坏,则问题就在于此。我有类似的问题,我通过用选定分支的最后一次提交的git commit hash替换HEAD文件的内容来修复它。
可以在.git/logs/refs/heads and branch_name_file
我希望它有所帮助。
答案 1 :(得分:3)
我在使用visual studio git插件时出现此错误。
解决方案是将my_repo_dir/.git/HEAD.lock
重命名为my_repo_dir/.git/HEAD
在锁定头文件后,看起来有些东西崩溃了并且杀了回购邮件。
答案 2 :(得分:2)
获取该错误消息的一种方法是以某种方式 not 在git repo工作树中。
请参阅“After git clone
I get a “ fatal: Not a git repository (or any of the parent directories): .git
” error”作为插图。
它也可能是因为GIT_WORK_TREE
环境变量被设置为错误的路径
或者使用像rvm
这样的git repo在包装器中看到它(例如,参见this thread)
在这两种情况下,重置新克隆(您所做的)中的情况通常是解决问题的好方法。
答案 3 :(得分:2)
在我尝试将分支从Visual Studio推送到远程后出现同样的问题。在检查其内容后,我将.git / HEAD.lock重命名为.git / HEAD。现在它工作正常。