github工作流 - 致命:不是git存储库(或任何父目录):。git

时间:2012-09-10 19:25:02

标签: git merge repository

我有一个主分支和一个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分支。

有没有人对如何纠正这个问题有任何建议。

4 个答案:

答案 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。现在它工作正常。