每次执行Rails命令时都出现“fatal: Not a git repository (or any of the parent directories): .git”错误,但是Git命令可以正常工作

14

我在使用Git和我的Rails项目时遇到了问题。

我已经建立了一个GitHub仓库,并成功地推送了四个提交。每次我尝试的git命令 (git status, git add, git commit, git push等) 都按预期工作。但是每次我尝试执行Rails命令(例如bundle show, bundle install, rails s, rails generate, rake test等),控制台都会显示以下消息:

fatal: Not a git repository (or any of the parent directories): .git
fatal: Not a git repository (or any of the parent directories): .git
fatal: Not a git repository (or any of the parent directories): .git
每次出现消息都会出现在三行或六行。我的项目中有.git文件夹,并且我在正确的文件夹中。所有的rails命令都像预期的那样工作。但是每个rails命令都会带来这个烦人的消息。我将存储库克隆到另一个文件夹中并创建了另一个存储库,将代码推送到该新存储库中。错误也存在于我的新文件夹中。
我使用git init重新初始化了我的现有Git存储库,但没有改变任何内容。
当我设置一个新的Rails项目并将其推送到一个新的存储库等时,就不会出现错误。我的项目出了什么问题?为什么会发生这种情况并如何修复?
我正在使用ruby 1.9.3rails 3.2.1git 1.7.9
感谢@manojlds,我可以更进一步地分离出问题。这是therubyracer gem的问题。我不知道问题具体是什么,但因为我在Windows上使用这个特殊的therubyracer gem:https://github.com/hiranpeiris/therubyracer_for_windows。所以我将问这个特殊宝石的开发人员,并向他展示捆绑器错误。也许他会知道这是他的宝石有问题还是与bundler有问题。Bundler有一个更新的预发布版本。但我不能在Windows上安装预发布版本。所以我必须等待,因此我现在必须忍受这些烦人的消息。或者有没有办法禁用这些消息?
这是我的github问题:https://github.com/hiranpeiris/therubyracer_for_windows/issues/1

这看起来像是您正在使用的命令中的一个错误...它们应该_至少_隐藏错误消息--或者根本不触发它们。 - fge
我的命令中有 bug 是什么意思?我输入的命令是标准的 Rails 命令(例如 "bundle show")。你能再解释一下吗? - coderuby
3
当我遇到这个问题时,我没有进入正确的目录。 - bobobobo
同样的情况也发生在我身上,当我进入正确的目录后,错误就不再出现了。再次感谢您节省了我的时间。 - Manish Ranjan
4个回答

15
尝试在 RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/therubyracer-0.11.0beta1-x86-mingw32 中运行 git init。它将初始化一个新的空 git 存储库。

4

感谢您的评论,我能够更进一步地分离问题。我在我的gemfile中注释掉了所有额外的gems。错误消失了。然后我逐个注释掉了所有其他的gems。问题出在therubyracer gem上。我不知道具体的问题是什么,但因为我使用的是Windows系统,所以我使用了这个特殊的therubyracer gem:https://github.com/hiranpeiris/therubyracer_for_windows。 - coderuby
所以我会询问这个特殊宝石的开发者,并向他展示bundler的错误。也许他会知道这是他的宝石还是bundler的问题。Bundler有一个更新的预发布版本。但我无法在Windows上安装预发布版本。所以我必须等待,因此现在我必须忍受这些烦人的消息。或者有没有办法禁用这些消息? - coderuby

2

当您运行该命令时,请确保您在正确的目录中:

git tag

我在从git安装node.js的时候遇到了同样的问题,后来发现我必须在下载后的子目录中才能显示标签版本。

例如,我使用以下命令获取node.js:

git clone https://github.com/joyent/node.git

...但是在运行git tag命令之前,需要先使用cd node进入node子目录。


-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接