我是git新手,目前正在寻找从mercurial移植一些大型项目。 我们有一个根项目,只包含所有外部项目的引用(git中的子模块)。我正试图在git中重新创建这个项目。
我已经将一个项目(foo)导入到githib中。 我创建了一个新的空项目(root)并将其克隆到本地。 我想把 Foo 添加为一个子模块,使用
git submodule add https://github.com/.../foo.git
从cWorkGitHubroot(主站)出发。
但我一直收到 "请确保.gitmodules文件在工作树中"。
看了一下文档,这个命令的第一次运行应该会创建.gitmodules文件,但即使我手动创建它,也会得到这个错误。 在Google上查找这个错误,只是返回带有错误的源文件,但没有解释为什么我会出现这个错误。 我想这应该是我对git的理解不透彻吧。
我到底做错了什么?
EDIT:我也试过了。
mkdir test
cd test
git init
git submodule add https://github.com/.../foo.git
我也得到了同样的错误。
的 检查你可能失败的是:
int is_writing_gitmodules_ok(void)
{
struct object_id oid;
return file_exists(GITMODULES_FILE) ||
(get_oid(GITMODULES_INDEX, &oid) < 0 && get_oid(GITMODULES_HEAD, &oid) < 0);
}
这意味着,要么该文件存在于本地,要么该文件存在于本地。不 中转站内存在的或当前的 HEAD
承诺。
你已经用了 git add
但后来从工作目录中删除了它。
使用 git restore .gitmodules
(或类似的)将现有的文件恢复到你的工作目录中。
以防有人遇到这个问题。 我的git安装有问题。 我卸载并重新安装了它,错误就消失了。