尝试远程添加Git仓库时接收"致命:不是git存储库"

Cor*_*rey 416 git

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

一切正常,直到将repo添加到本地计算机的部分:

git remote add nfsn ssh://USERNAME@NFSNSERVER/home/private/git/REPONAME.git
Run Code Online (Sandbox Code Playgroud)

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

fatal: Not a git repository (or any of the parent directories): .git
Run Code Online (Sandbox Code Playgroud)

你能帮助我走过这一步吗?

Ass*_*vie 849

您是否已初始化了一个本地Git存储库,该存储库应添加到该存储库中?

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

试试git init.

  • 我的确有.git,我已经完成了git init但是我得到错误`jalal @ klein:〜/ computer_vision/py-faster-rcnn $ git add -A致命:不是git存储库:caffe-fast-rcnn/../git的/模块/ CAFFE-快速rcnn` (6认同)
  • 我的`.git`文件夹消失了.`git init`与删除存储库文件夹相同,然后`git clone ...`.我需要做的就是"拉" (3认同)
  • @FranciscoCorralesMorales如果你的`.git`文件夹消失了,你可以再次运行`git init`来创建一个新文件夹.您需要先重新添加一个遥控器,然后才能从中取出它. (3认同)
  • 从本地系统提交更改时,我遇到了同样的错误.尝试**git init**并且它有效.谢谢! (3认同)
  • 我已经完成了这一步,但在设置我的引擎码帐户安装引擎码后必须再做一次. (2认同)
  • @MonaJalal:对我来说也一样.在这种情况下如何解决错误? (2认同)
  • 通常我们克隆fork并忘记cd到实际git repo的目录中。只需在目录中 CD 并再次尝试命令 (2认同)

小智 80

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

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

如果GIT_DIR设置了环境变量,则它指定要使用的路径,而不是.git存储库的基础的默认值.

您可能需要cd进入存储库/工作副本,或者您没有首先初始化或克隆存储库,在这种情况下,您需要在要放置存储库的目录中初始化存储库:

git init
Run Code Online (Sandbox Code Playgroud)

或克隆存储库

git clone <remote-url>
cd <repository>
Run Code Online (Sandbox Code Playgroud)

  • +1提及GIT_DIR.在一个裸仓库的钩子中,GIT_DIR设置为'.' 而不是'.git'. (12认同)

Mar*_*ski 28

我的问题是,对于我的操作系统的一些小问题,我的本地存储库上的任何命令以"致命:不是git存储库(或任何父目录):.git"结束,包含fsck命令.

问题是空的HEAD文件.

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

echo 'ref: refs/heads/ML_#94_FILTER_TYPES_AND_SPECIAL_CHARS' > .git/HEAD
Run Code Online (Sandbox Code Playgroud)

有效.

  • 我在git rebase期间打开了Visual Studio,Visual Studio注意到文件发生了更改,此后不久我就蓝屏了。重新启动后,.git / HEAD充满了NULL,当我用完整的哈希(5621afeffbabed40e3f386676068c45643644b7d)替换它们时,从诸如.git \ refs \ remotes \ origin \ master之类的位置读取内容,git又开始工作了,我还需要https:// stackoverflow .com / questions / 1115854 / how-to-resolve-error-bad-index-fatal-index-file-corrupt-when-using-git,因为这告诉我删除.git / index,而我需要删除.git /在执行git reset之前先执行index.lock。现在好 (3认同)
  • 我的HEAD文件由于任何原因被损坏,所以我不得不恢复它并解决了问题 (2认同)
  • 你是个好朋友。节省了我大量的时间 (2认同)

Sma*_*mar 17

注意:这不能解决常见问题,这是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
Run Code Online (Sandbox Code Playgroud)

因为我没有任何真正需要保留的东西,所以我只是采用虚拟方式,并且......

smar@aaeru ~/P/Nominatim [128]> git init
Reinitialized existing Git repository in /home/smar/Projektit/Nominatim/.git/
Run Code Online (Sandbox Code Playgroud)

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

请注意,如果存在一些未提交的更改,您可以使用它们来查看它们git status,git diff依此类推.然后就git diff yourfile > patch在运行重置之前.

至少对我来说,reflog(git reflog)完全消失了.因此,如果你进行了重置,并且有一些想要防止的更改,我不确定你可以在重置后重新获得它们.因此,请确保您拥有所有不会丢失的更改,最终只需在尝试之前复制克隆.

  • 这个问题是在使用 Visual Studio 时发生的,`git init` 和 `git fetch --all` 确实解决了这个问题。 (2认同)

edu*_*nio 8

如果它帮助其他人,我在不小心删除 .git/objects/ 后收到此错误消息

致命:不是 git 存储库(或任何父目录):.git

恢复它解决了问题。


小智 7

我刚刚在我的目录中重新初始化了 git

git init 
Run Code Online (Sandbox Code Playgroud)

它起作用了


Isa*_*acS 6

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

$ git status
fatal: Not a git repository: /home/rospasta/path_old/gitprojecta/.git/modules/.travis
Run Code Online (Sandbox Code Playgroud)

我发现在/home/rospasta/path_old/gitprojecta/.travis/.git项目旧位置的绝对路径上写的.手动更新新位置的此路径可以解决我的问题.

所以我的问题可能是也可能不是git问题,但HTH.


小智 6

$ git status
fatal: Not a git repository:
Run Code Online (Sandbox Code Playgroud)

只需在cmd或git shell或任何其他终端中键入以下内容:

$ git init
Run Code Online (Sandbox Code Playgroud)


kev*_*rsi 5

可能为时已晚,但另一种可能有助于未来访问者的解决方案。先删除旧.git目录——

rm .git
Run Code Online (Sandbox Code Playgroud)

然后再次初始化git repo

git init
Run Code Online (Sandbox Code Playgroud)

  • 应该注意的是,这会破坏所有 git 元数据,例如提交。您将保留数据,但 Git 将“重新开始”——这可能不是一件好事。 (6认同)
  • @JosephA。:你是对的,那是次优的。你有更好的解决方案吗?即使存在 `.git` 文件夹,我也会收到 `fatal` 错误。 (2认同)
  • 这是抹掉一切!可能是解决这个问题的最糟糕的方法。 (2认同)

Man*_*ani 5

对我来说,只有在尝试从非 git 目录(即从不是工作副本的其他目录)执行 git 命令时才会出现问题。

要解决此插件-C <git dir>在你执行这样的混帐命令 git status将成为git -C /dir/to/git statusgit add -Agit -C /dir/to/git -A