Git子模块添加错误:没有检出提交

70

我在使用Bitbucket的帮助下创建了一个名为confusionmatrix的新Git存储库。现在,我正在尝试将confusionmatrix存储库作为子模块添加到另一个Git存储库(称为workspace)中,类似于以下内容:

git submodule add https://....@bitbucket.org/..../confusionmatrix.git

但是我遇到了以下错误:

'confusionmatrix'没有检出提交

我已经在其他git仓库中将此操作应用到相同的“workspace”仓库,并且工作正常。

我做错了什么?

14个回答

112

顺便提一下,如果你在试图添加文件夹时,意外地已经有一个 .git 文件夹存在于该文件夹的任何子文件夹中,也会显示相同的消息。 如果是这种情况,那么删除 git 子文件夹,如果有任何 .vs 文件,请也删除掉。 这就是我的情况,我也遇到了相同的错误消息。


7
谢谢!删除内部的 git 文件夹对我有用。 - Shagun Pruthi
1
这可能是由于之前失败的 git submodule add 导致的(在我的情况下,子模块尚未填充并且没有任何提交)。然后只需删除子模块的整个目录(包括 .git 文件)。 - Adrian W
接着,我遇到了这个错误信息:“本地找到 '[submodule-name]' 的 git 目录与远程目录重复。” 如果您想要重用它,请使用 --force 选项。我不得不使用 rm -rf .git/modules/[submodule-name] 命令。感谢 https://dev59.com/ymEi5IYBdhLWcg3w0O-Q#38420557。 - Cyril Duchon-Doris
+1 这对我来说也是个错误。即使已经是一个仓库的一部分,Visual Studio 仍会自动创建一个 .git 文件夹。这个答案让我去检查这个文件夹。 - Wipqozn
在我的情况下,我在venv文件夹下有一个.git文件夹。我将其删除后,问题解决了。 - luki

58
  1. 在某些子目录中找到剩余的.git文件夹(错误信息中显示了目录!)
find ./ -name '.git'
  1. 删除它(确保选择正确的文件夹!!!
rm -r yourfolder/.git/
  1. 重试

在子模块上,如果你初始化了git,那么可能会遇到这个问题。我之前也不小心犯了同样的错误,但是按照上述步骤操作后问题解决了。谢谢 @giesOr - Sumit

24

如果您在BitBucket上创建了一个的Git仓库,请尝试确保至少提交一次(或推送一次提交)。

在将该仓库作为子模块引用到您的第二个本地仓库之前,请进行此操作。


12
在我的情况下,子文件夹包含 .git 文件夹。
检查任何子文件夹是否包含“.git”文件夹。删除该“.git”文件夹,它将起作用。
或者,另一种方法是:
在 git-shell 中运行。
rm -rf .git

2
在 git-shell 中运行 "rm -rf .git",对我来说非常有效。 - lakjeewa Wijebandara

8

我在子目录中有另一个.git文件夹,在初始化之前我从存储库中进行了拉取,在删除该存储库后,git add .命令生效了。


2
我有同样的问题。我的框架(Nest.js)在项目子目录中自动创建了一个 .git 文件夹。我必须先删除它,然后才能提交子目录。 - Elias Strehle

2
由于你的子模块内部有可用的 git 项目,导致出现该问题。 尝试搜索 .git 文件夹并将其移除。

2
git commit -m "if you have something you want to Keep comment"

手动删除分支及其所有文件

请注意:此操作将永久删除分支及其所有文件,请谨慎操作。

git clone https://WhereMyOriginIs" MyLocalFolderName

2
error: '[route]' does not have a commit checked out
fatal: adding files failed

这个错误可能是由于在路径上找到了一个无法添加的.git文件而生成的。
如果您导航到[路径]并执行git status,则会收到下一个错误。
fatal: detected dubious ownership in repository at '[route]'

这是因为您的主要代码库中包含另一个代码库。


1
请检查您的子文件夹(others),其中也包含.git目录,因此请删除(删除)此文件夹。之后再执行{git add -> git commit -m -> git push origin}这些命令,然后您的问题就解决了。
谢谢。

1

当你错误地将init文件夹放在指定位置时,就会发生这种情况。在我的情况下,我错误地将它放在了Gallery文件夹中,并在添加所有项目时再次初始化它,导致出现了这个错误。 没有提交被检出


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