git - 运行 git submodule add 命令时获取“请确保 .gitmodules 文件在工作树中”
问题描述
我是 git 新手,目前正在考虑从 mercurial 移植一些大型项目。我们有一个根项目,它只包含对所有外部项目(git 中的子模块)的引用。我正在尝试在 git 中重新创建它。
我已经将一个项目(foo)导入了 githib。我创建了一个新的空项目(根)并将其克隆到本地。我想使用添加 Foo 作为子模块
git submodule add https://github.com/.../foo.git
来自 /c/Work/GitHub/root(主)
但我不断收到“请确保 .gitmodules 文件在工作树中”。
查看文档,此命令的第一次运行应该创建 .gitmodules 文件,但即使我手动创建它也会出现此错误。在 Google 上查找此错误只是返回带有错误的源文件,但没有解释为什么我得到它。我认为这只是我对 git 的了解不足。
我做错了什么?
编辑:我也试过。
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
(或类似方法)将现有文件带回您的工作目录。
推荐阅读
- javascript - 显示为纯文本的操作图标
- xml - 在 Bash 中使用 xmllint 从 WSDL 文件中检索信息
- c++ - C/C++ 中的整数除法会遇到精度损失问题吗?
- python - 将seaborn factorplot设为黑白
- salesforce - 我需要关于顶点触发问题解决方案之一的建议
- python - Spark(pySpark)组通过错误排序collect_list上的第一个元素
- java - 如何使实体中的列无法读取
- mongodb - 完成 $unwind 后,总计替换 $size
- ruby-on-rails - 在 Rails 中的帖子中添加评论部分
- html - 为什么 Grommet 库中的 Text 组件渲染的 span 元素能够得到 margin-top?