当我在我的仓库上运行git status时,我得到了 fatal: Not a git repository: /my repo/.git/modules/docs
我已经检查过.git并且包含具有适当权限的HEAD.我可以运行各种其他命令.如果我运行git gui它打开正常并将列出一些已更改的文件,但是缺少很多文件.
我猜测HEAD可能存在某种腐败现象,但不确定.知道如何在不消除整个回购的情况下解决这个问题吗?
更新:我意识到我已经更改了repo目录的名称.错误中引用的目录是目录的旧名称.所以我目前的回购是在,/new dir/.git但错误是说Not a git repository: /old dir/.git/modules/docs.也许git很困惑?
我从不期望重命名git repo,更具体地说,它是顶级文件夹保存项目,会非常困难.是的,项目包含一些子模块,但它是需要重命名的顶级文件夹,而不是子模块文件夹.Git似乎在其子模块机制中记录了一些奇怪的绝对路径.
让我们假设一下
/tmp.proj_master和proj_mod.porj_master,proj_ALL然后克隆prom_mod为其中的子模块.proj_ALL为proj_onebillion.然后黑魔法发生了.以下步骤将重现我提到的问题.我使用的git版本是:
$ git --version
git version 1.7.9.5
Run Code Online (Sandbox Code Playgroud)
初始化proj_master.
$ cd /tmp
$ mkdir proj_master; cd proj_master
$ git init .
$ touch README
$ git add .; git commit -m "hello proj_master"
Run Code Online (Sandbox Code Playgroud)初始化proj_mod.
$ cd /tmp
$ mkdir proj_mod; cd proj_mod
$ git init .
$ touch …Run Code Online (Sandbox Code Playgroud)