git status中的“致命:不是git存储库(或任何父目录)”


99

此命令用于获取文件并进行编译:

git clone a-valid-git-url

例如:

git clone git://cfdem.git.sourceforge.net/gitroot/cfdem/liggghts

但是,git status(或任何其他git命令)然后会出现上述fatal: Not a git repository (or any of the parent directories)错误。

我究竟做错了什么?


6
检出的代码在liggghts目录中。
Eugen Constantin Dinca 2012年

Answers:


161

您必须首先实际进入目录:

$ git clone git://cfdem.git.sourceforge.net/gitroot/cfdem/liggghts
Cloning into 'liggghts'...
remote: Counting objects: 3005, done.
remote: Compressing objects: 100% (2141/2141), done.
remote: Total 3005 (delta 1052), reused 2714 (delta 827)
Receiving objects: 100% (3005/3005), 23.80 MiB | 2.22 MiB/s, done.
Resolving deltas: 100% (1052/1052), done.

$ git status
fatal: Not a git repository (or any of the parent directories): .git
$ cd liggghts/
$ git status
# On branch master
nothing to commit (working directory clean)

1
当git把它放在自己的.git目录中时,也会出现此错误。我拉了一下,然后看到消息“在后台自动打包存储库以获得最佳性能”。然后,我尝试执行更多操作,仅收到OP的错误消息。我的.git文件夹仍然存在,但是git以某种方式损坏了它。运行git init修复了问题。
塞林(Cerin)

我真傻 在转到目录之前尝试git status :)非常感谢。
webHasan

12

我刚收到此消息,在尝试其他方法之前有一个非常简单的答案。在父目录中,键入git init

这将初始化git的目录。然后git addgit commit应该工作。


克隆之前还是之后?这会创建一个新的git repo吗?这将如何与现有的git repo和克隆的历史一起使用?remote在这种安排下,原始设置会怎样?
迈克尔·杜兰特

11

就我而言,是一个环境变量GIT_DIR,我添加了该变量以加快访问速度。

这也破坏了我在SourceTree中的所有本地存储库:(


5

有时是因为ssh。因此,您可以使用以下代码:

git clone https://cfdem.git.sourceforge.net/gitroot/cfdem/liggghts

代替:

git clone git://cfdem.git.sourceforge.net/gitroot/cfdem/liggghts

我在尝试将存储库克隆到本地计算机时遇到错误。我从使用https://切换到git://,并成功克隆了它。向我指出正确的方向。
斯科特·韦德

4

就我而言,我在使用Windows cmd尝试任何git-命令(例如git status)时遇到了相同的问题。因此,我的工作是在 环境变量中为窗口https://windows.github.com/安装git之后,在“ PATH”变量上添加git的类路径。通常git会安装在C:/user/"username"/appdata/local/git/bin环境变量的PATH上

cmd上的另一件事转到git仓库或cd到您的克隆在窗口上的位置,通常它们将存储在github下的文档中

cd Document/Github/yourproject

之后,您可以使用任何git命令


3

我还有另一个问题。我在git目录中,但是通过符号链接到达了。我必须直接进入目录(即不通过符号链接),然后工作正常。


3
git clone https://github.com/klevamane/projone.git
Cloning into 'projone'...
remote: Counting objects: 81, done.
remote: Compressing objects: 100% (66/66), done.
remote: Total 81 (delta 13), reused 78 (delta 13), pack-reused 0
Unpacking objects: 100% (81/81), done.

你必须要“ cd projone”

然后您可以检查状态。


一开始很难注意到的一个原因,是因为您已经在计算机中创建了一个具有相同名称的文件夹,而这正是您将项目克隆到的文件夹,因此您必须再次更改目录



3

当我尝试使用git init初始化git时,此错误已解决。有效


2

就我而言,原始存储库只是一个空库。

因此,我必须输入(在Windows中):

mkdir   dest
cd dest
git init
git remote add origin a\valid\yet\bare\repository
git pull origin master

要检查存储库是否裸露:

git rev-parse --is-bare-repository 


1

如果计划使用VS Code在TSF上迁移现有项目解决方案,请执行以下操作:

打开终端并运行以下命令:

  1. 在该文件夹(根目录)中初始化 git

    git init

  2. 添加 Git

    git add .

  3. 将您的TSf / Git 链接到该项目-{url}替换为您的git地址

    git remote add origin {url}

  4. 提交这些更改:

    git commit -m "initial commit"

  5. 推送 -我将代码作为version1推送,您可以为分支使用任何名称

    git push origin HEAD:Version1


0

我突然在任何试图从以下目录运行git命令的目录中出现错误:

fatal: Not a git repository: /Users/me/Desktop/../../.git/modules/some-submodule

对我来说,事实证明我.git在桌面上有一个隐藏文件,内容如下:

gitdir: ../../.git/modules/some-module

删除该文件并修复。


0

我的办公室网络也有同样的问题。我使用此命令,但它不适用于我的 网址,所以像这样:之前 $ git clone https://gitlab.com/omsharma/Resume.git

我使用此URL之后:$ git clone https://my_gitlab_user@gitlab.com/omsharma/Resume.git 尝试一下。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.