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

Posted

技术标签:

【中文标题】“致命:不是 git 存储库(或任何父目录)”来自 git status【英文标题】:"fatal: Not a git repository (or any of the parent directories)" from git status 【发布时间】:2012-08-11 07:02:48 【问题描述】:

此命令用于获取文件并编译它们:

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) 错误。

我做错了什么?

【问题讨论】:

签出代码在liggghts目录下。 【参考方案1】:

你必须先实际 cd 进入目录:

$ 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)

【讨论】:

当 git 处理它自己的 .git 目录时,您也会收到此错误。我拉了一下,看到消息“在后台自动打包存储库以获得最佳性能”。然后我尝试做更多的操作,只得到 OP 的错误信息。我的 .git 文件夹仍然存在,但 git 以某种方式损坏了它。运行git init 解决了这个问题。 我多么愚蠢。在进入目录之前尝试 git status :) 非常感谢。【参考方案2】:

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

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

【讨论】:

克隆之前还是之后?这会创建一个新的 git repo 吗?这将如何与现有的 git repo 和克隆的历史一起工作?在这种安排下,原来的remote 设置会发生什么变化?【参考方案3】:

在我的例子中,是一个环境变量GIT_DIR,我添加了它以加快访问速度。

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

【讨论】:

【参考方案4】:

有时是因为 ssh。所以你可以使用这个:

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

代替:

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

【讨论】:

我只是在尝试将存储库克隆到我的本地计算机时遇到错误。我使用 https:// 切换到 git:// 并成功克隆。感谢您为我指明了正确的方向。【参考方案5】:

在我的情况下,当我使用 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 命令

【讨论】:

【参考方案6】:

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

【讨论】:

【参考方案7】:
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”

然后你可以检查状态。


一开始很难注意到的一个原因,我是因为您已经在计算机中创建了一个同名的文件夹,并且您将项目克隆到该文件夹​​中,因此您必须再次更改目录


【讨论】:

【参考方案8】:

当我尝试使用 git init 初始化 git 时,此错误得到解决。成功了

【讨论】:

【参考方案9】:

如果现有项目解决方案计划在 VS Code 中迁移到 TSF:

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

    初始化该文件夹(根目录)中的 git

    git init

    添加 Git

    git add .

    链接您的 TSf/Git 到该项目 - url 替换为您的 git 地址

    git remote add origin url

    提交这些更改:

    git commit -m "initial commit"

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

    git push origin HEAD:Version1

【讨论】:

【参考方案10】:

在我的情况下,原始存储库是一个空的。

所以,我必须输入(在 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 

【讨论】:

【参考方案11】:

简单地说,在克隆 repo 后,您需要 cd (更改当前目录) 到新的克隆文件夹

git clone https://User_Name@bitbucket.org/Repo_Name.git

cd Repo_Name

【讨论】:

【参考方案12】:

我突然在任何目录中遇到错误,例如我试图从以下目录运行任何 git 命令:

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

对我来说,原来我的桌面上有一个隐藏文件.git,内容如下:

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

删除该文件并修复。

【讨论】:

【参考方案13】:

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

之后我使用这个网址:$ git clone https://my_gitlab_user@gitlab.com/omsharma/Resume.git 试试吧。

【讨论】:

以上是关于“致命:不是 git 存储库(或任何父目录)”来自 git status的主要内容,如果未能解决你的问题,请参考以下文章

书评:男人来自火星,女人来自金星-约翰.格雷

为啥 WCF 服务能够处理来自不同进程的调用而不是来自线程的调用

来自 viewDidAppear 的 Segue 调用有效,但不是来自 viewWillAppear

求职作业帮 C++方向面经

来自 CWnd 的 ReleaseDC 覆盖来自 winuser 的 ReleaseDC

来自麦克风的声音与来自扬声器的声音