【问题标题】:Empty Git submodule folder when repo cloned克隆 repo 时清空 Git 子模块文件夹
【发布时间】:2012-07-06 16:03:46
【问题描述】:

我在 https://github.com/aikiframework/json 托管了一个仓库。在我的本地副本上,我使用命令添加了一个子模块

git submodule add git@github.com:jcubic/json-rpc.git json-rpc

然后我做了一个提交和推送,更改出现在 GitHub 上(我可以点击它)。但是当我克隆 repo 时

git clone https://github.com/aikiframework/json.git

子模块文件夹 json-rpc 为空。

我在这里缺少什么?我是不是忘记了什么?为什么那个文件夹是空的?

【问题讨论】:

  • 如果你忘记了 git clone 中的 --recursive 标志,那么你可以这样做 git submodule update --init
  • @CharlieParker 它在接受的答案第一条评论中。

标签: git version-control git-submodules git-clone


【解决方案1】:

好的,我找到了,需要在克隆repo时添加--recursive

所以克隆命令最终为:

git clone https://github.com/aikiframework/json.git --recursive

请注意,如果您忘记了--recursive 标志,您可以这样做(感谢@Amber):

git submodule update --init

【讨论】:

  • 是的。如果您已经克隆但忘记了--recursive,您也可以在事后使用git submodule update --init 获取子模块。
  • 刚遇到develop分支有子模块,master分支还没有的问题。当您使用 --recursive 克隆 git repo 时,它不会在主分支上找到子模块,您必须使用 Ambers 注释“git submodule update --init”来获取它以获取子模块。
  • 如果你使用git submodule update --init,你将不得不去每个repo并做git checkout master否则你会在git pull上得到错误You are not currently on a branch.当你尝试更新它到一个新版本.
  • @Noitidart 有没有办法不这样做? (在已经克隆项目之后)
  • @Noitidart 感谢update --init 的提示。当原始克隆中没有 --recursive 并且只是想提取丢失的子模块时,这确实有帮助。
猜你喜欢
  • 2012-11-08
  • 1970-01-01
  • 2014-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多