在尝试远程添加Git仓库时收到“致命的:不是git仓库”

我正在按照本教程向Git自我介绍:

  • 让jekyll在almostfreespeech.net上运行

一切工作正常,直到回购被添加到我的本地机器的部分:

git remote add nfsn ssh://USERNAME@NFSNSERVER/home/private/git/REPONAME.git 

(用正确的名称replaceUSERNAME,NFSNSERVER和REPOAME后)我收到错误:

 fatal: Not a git repository (or any of the parent directories): .git 

你能帮我渡过这一步吗?

你有没有初始化一个本地的Git仓库,这个远程应该添加到哪里?

你的本地目录是否有.git文件夹?

尝试git init

如果在当前工作目录不在Git存储库中时尝试使用Git命令,则会出现此错误。 这是因为,默认情况下,Git会查找一个.git版本库目录(位于项目根目录?),正如我回答“Git不会显示日志,除非我在项目目录中”所指出的那样:

根据官方的Linux Kernel Git文档 , GIT_DIR情况下, GIT_DIR是[环境variables]设置为查找.git目录(在当前工作目录中?):

如果设置了GIT_DIR环境variables,那么它指定了一个使用的path,而不是默认的.git作为存储库的基础。

你要么需要cd到版本库/工作拷贝,要么你没有初始化或克隆版本库,在这种情况下,你需要在你想要放置回购的目录中初始化一个回购:

 git init 

或克隆存储库

 git clone <remote-url> cd <repository> 

注意:这不是OP的常见问题的答案,这是OP的问题,但对这个错误消息可能出现的不同的问题。 我不想为了写下这个答案而提出新的问题,告诉我是否应该这样做:P

我遇到了这种情况,很可能是由于某些特定的崩溃导致的,即使.git确实存在,我也会得到这个错误。

 smar@aaeru ~/P/Nominatim> git status fatal: Not a git repository (or any of the parent directories): .git smar@aaeru ~/P/Nominatim [128]> ls .git COMMIT_EDITMSG config* FETCH_HEAD HEAD index logs/ modules/ objects/ ORIG_HEAD packed-refs 

由于我没有任何需要保存的东西,我只是用虚假的方式去做,而且…

 smar@aaeru ~/P/Nominatim [128]> git init Reinitialized existing Git repository in /home/smar/Projektit/Nominatim/.git/ 

仍然不工作,例如git log返回fatal: bad default revision 'HEAD' 。 远程那里虽然,所以我做了git fetch --all ,然后只是git reset --hard origin/master让自己回到以前的状态回购。

请注意,如果有一些未提交的更改,可以使用git statusgit diff等等来查看它们。 然后只是在运行重置之前, git diff yourfile > patch

至less对我来说reflog( git reflog )完全消失了。 因此,如果您进行重置,并且您想要阻止某些更改,我不确定您是否可以在重置后重新取回。 因此,请确保您所做的所有更改都不会丢失备份,最终只需在尝试之前复制克隆即可。

在命令行/ CLI中,如果当前目录不是存储库,将会出现此错误。 所以,你必须先把CD放入回购。

在我移动文件系统上的git项目的位置后,发生了这个问题。 当我运行一些git命令时,发生错误,例如:

 $ git status fatal: Not a git repository: /home/rospasta/path_old/gitprojecta/.git/modules/.travis 

我在/home/rospasta/path_old/gitprojecta/.travis/.gitfind了项目的旧位置的绝对path。 手动更新新位置的path解决了我的问题。

所以我的问题可能会或可能不是一个混帐问题,但HTH。

可能太晚了,但另一个解决scheme,可能会帮助未来的游客。 首先删除旧的.git目录 –

 rm .git 

然后再次初始化git回购

 git init 

看起来你不会去你的特定文件夹。 例如,如果我正在处理名为bugsBunny的项目,并将其保存在文件夹d:/ work:code中,则首先必须使用cd d:/ work / code / bugsBunny转到该文件夹​​,然后可以继续使用你的git命令。

在我的情况下,我使用龟SVN,并犯了错误,同时也使用Visual Studio GIT函数。 这使得Visual Studiolocking.git文件夹中的HEAD文件,所以VS或者龟都不能访问repo,并且我从这两个应用程序中得到了“致命的:不是git repo …”的错误。

解:

  1. 进入.git文件夹并将“HEAD.lock”重命名为“HEAD”
  2. 决定一个GITpipe理员应用程序,不要触摸另一个

在我的情况下,我有同样的问题,而我尝试任何使用Windows CMD的git – 命令(例如git状态)。 所以我所做的是在环境variables的窗口https://windows.github.com/中安装git之后,在“PATH”variables中添加git的类path。; 通常git会安装在C:/ user /“username”/ appdata / local / git / bin这个环境variables的PATH中

在cmd上还有一件事要去你的git仓库或cd到你的窗口上的克隆的地方,通常他们将被存储在github下的文件cd / Document / Github / yourproject之后,你可以有任何的git命令

谢谢

下面的错误好像Gits没有在当前目录中find.git文件,所以抛出错误信息。

因此,切换到目录到git的代码库,然后运行这个命令。

  • $ git checkout

转到你的源文件夹存储本地回购,例如我的发现在C:/ GitSource,在文件夹中点击鼠标右键,在这里单击git bash,然后git状态….

即使我有同样的问题。 我写了一个shell脚本,通过使用crontab在17:55的一个工作日内将所有的代码备份到我的git仓库。 通过看到cron的日志,我发现了上述问题。

上面的问题只有当你试图执行从非gir目录(即从其他目录不是工作副本)的git命令。 在你正在执行的git命令中修复这个添加的-C <git dir> ,这样git status git -C /dir/to/git statusgit add -A将会是git -C /dir/to/git -A

 $ git status fatal: Not a git repository: 

只需在你的cmd或git shell或任何其他terminal中input以下内容:

 $ git init 

我的问题是,对于我的操作系统的一些打嗝,我的本地存储库的任何命令结束“致命的:不是一个git存储库(或任何父目录):.git”,包括fsck命令。

问题是空的HEAD文件

我能够find我在.git / refs / heads中工作的实际分支名称,然后我这样做了:

 echo 'ref: refs/heads/ML_#94_FILTER_TYPES_AND_SPECIAL_CHARS' > .git/HEAD 

有效。

对我而言,这与我的.git/path中的格式不正确的所有权有关。 root拥有.git/HEAD.git/index ,防止jenkins用户运行该作业。

GIT_DIR应该取消设置: unset GIT_DIR

在我的情况下,我发现在Windows中的git从驱动器盘符变得区分大小写。

在windows cli命令升级git二进制后,用于工作停止。 例如脚本中的path是D :\ bla \ file.txt,而git命令只接受d :\ bla \ file.txt

git工作正常,所有突然它开始显示这个fatal: Not a git repository (or any of the parent directories): .git消息。

对于我不知道在.git文件夹中损坏了什么,我做了git clone ** newfolder ,并将整个.git文件夹复制到我在git开始显示错误消息之前进行更改的损坏/旧文件夹。

一切恢复正常,git也认出了我的改变/未上演的文件。

为此,您需要input一个从bitbucket命令中缺less的命令

请尝试git init。