在我的存储库中,我远程跟踪我们的主存储库,这是裸的。我从来没有遇到从过去取得的任何问题。
然而,当我今天早上尝试远程更新时,我收到以下错误:
fatal: '/users/integrator/project' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
error: Could not fetch origin
我没有改变任何东西,而且存储库肯定还在那里。有几个人可以访问集成商帐户,但他们通常会合并和拉取。我们不允许推送到此存储库。
我的问题是:可能导致这种情况发生的原因是什么?或者,是否有任何诊断我可以用来弄清楚出了什么问题?我不是唯一突然遇到这个问题的用户,所以问题更可能是在原点。
更新:
当我尝试克隆裸存储库时,出现以下错误:
git clone /users/integrator/project
Cloning into project...
fatal: failed to open '/users/integrator/project/.git/objects': No such file or directory
以下是/ users / integrator / project的内容列表:
config
HEAD
packed-refs
ssh_helper
bin/
hooks/
info/
exclude
objects/
[lots of folders with two character long names]
info/
pack/
refs/
heads/
tags/
答案 0 :(得分:5)
我会看一下服务器上/users/integrator/project
目录中的内容。它看起来像一个git存储库吗?它需要有一个objects
目录,refs
目录和HEAD
文件,以便成为一个合适的git存储库。它包含所有这些吗?
要检查的另一件事是,您是否可以直接登录到服务器,并从存储库中克隆。
除此之外,如果您仍然无法弄清楚出了什么问题,我建议您修改问题以显示/users/integrator/project
中的内容列表,也许我们可以提供更多有关该信息的帮助。
修改:
鉴于错误,您的裸存储库中可能有一个.git
目录。您可以查看ls -a
,以显示隐藏文件。如果是这种情况,Git可能会首先查看您的存储库中的.git
目录,而不是查看您的存储库目录本身。我会查看一下,然后将内部.git
移开或删除它以允许Git访问您的实际存储库。
如果您的仓库中没有.git
目录,请四处寻找附近名为.git
或project.git
的内容; Git将根据您提供的路径名称搜索各种路径名称,没有.git
子目录或后缀的裸路径名称接近其搜索的末尾。