【问题标题】:fatal: Not a git repository: git status works. But git add . doesn't致命的:不是 git 存储库: git status 有效。但是 git add 。没有
【发布时间】:2013-11-24 12:19:53
【问题描述】:

我有一个无法正确卸载的 gitsubmodule。 (在这里猜测)。我添加了一个同名的子树。一切都很好,直到我应该暂存我的文件。

$git status /*Shows unstaged files just fine*/
$git add . /*Prints error message*/

fatal: Not a git repository:MyProject/SLibrary/../.git/modules/SLibrary

关于如何摆脱错误消息以便我可以使用 git add -a/ 暂存文件的任何想法。

【问题讨论】:

  • stat 是不是特殊别名?我得到git: 'stat' is not a git command. See 'git --help'.
  • 对不起。我的意思是状态(我使用 stat 作为 git status --oneline 的别名)
  • 我怀疑您只需要在此阶段手动从.git/config 中手动删除特定于子模块的部分。
  • 如果您还记得,请将您用于添加子树的命令添加到问题中。还要在.git/config 文件中添加git submodule 的打印输出和任何submodule 部分的内容。

标签: git git-submodules git-subtree


【解决方案1】:

尝试将子模块移到其 git 存储库之外时,可能会发生这种情况。

$ git status
fatal: Not a git repository: ../.git/modules/some-project

检查项目中的.git 文件。它可能具有到其旧 gitdir 的相对路径。

$ cat .git
gitdir: ../.git/modules/some-project

更新该文件或删除它和git init

【讨论】:

  • .git 应该是一个目录,而不是一个文件。
  • @VladislavRastrusny 在这种情况下 .git 指的是文件,而不是目录。 Git 子模块可以有一个.git 文件,该文件指向保存远程 git 配置文件的目录。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-20
  • 1970-01-01
  • 1970-01-01
  • 2012-08-11
  • 2012-10-04
  • 2015-07-01
  • 1970-01-01
相关资源
最近更新 更多