git status 返回 fatal : Not a git repository but . git 存在并且 HEAD 具有适当的权限

标签 git

当我在我的仓库上运行 git status 时,我得到 fatal: Not a git repository:/my repo/.git/modules/docs

我已经检查过,.git 存在并且包含具有适当权限的 HEAD。我可以很好地运行其他各种命令。如果我运行 git gui,它可以正常打开并列出几个更改的文件,但缺少很多文件。

我猜测 HEAD 中可能存在某种损坏,但不确定。知道如何在不清除整个 repo 协议(protocol)的情况下解决这个问题吗?

更新:我意识到我已经更改了存储库目录的名称。错误中引用的目录是目录的旧名称。所以我当前的存储库位于 /new dir/.git 但错误是说 Not a git repository:/old dir/.git/modules/docs。所以也许 git 很困惑?

最佳答案

这两个文件包含子模块的绝对路径:

{submodule}/.git
.git/modules/{submodule}/config

因此,如果您移动了存储库,这两个文件中的绝对路径无效,并导致“不是 git 存储库”错误。只需手动修复这些文件。

关于git status 返回 fatal : Not a git repository but . git 存在并且 HEAD 具有适当的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10144149/

相关文章:

ruby-on-rails - 无法使用 Rails 和 Capistrano 进行部署, "HEAD is not the same as origin/master"

git - autocrlf和eol有什么区别

git - 如何在 TortoiseGit 中从 Master 获取更新到 Branch

GitHub 无法识别来自还原 pull 请求的更改

git - Git Clone 的 Ansible 和 Git 权限被拒绝(公钥)

git branch 列出上游的分支

git - 大量git历史记录重写后如何同步本地历史记录?

node.js - 如何将 git 存储库添加到 Ubuntu 服务器

git - 当我根据提交消息提交时,如何更改 package.json 版本?

git - 为什么 "git log -‌- foo"对删除的文件 foo 不起作用?