我如何 fetch/re-push git 中的子模块?

How do I fetch/re-push a submodule in git?

在我的 git 存储库 (Bitbucket) 中,我引用了一个子项目。

当我首先推送它时,包含了一个 .git/ 文件夹(尽管我仅将存储库用于备份,因此并不是真正需要的)。

现在我在存储库

中有一个对该子模块 的引用
 <folder_name> → <SHA> [<SHA>])
  • 当我执行 git pull origin master 文件夹时,如果已获取但它是空的。
  • 当我尝试将内容放入该文件夹时(我删除了它,然后我将其从不同的存储库中拉出,然后删除了 .git/ 文件夹以使其看起来像一个普通文件夹,而不是子模块) 然后 git 添加 . && git commit -m ".." && git push origin master 我只得到 Everything's up-to-date 当然什么也没有在远程存储库中更改

目标:将过去的子模块作为主存储库的普通文件夹部分推送。

我错过了什么?子模块如何工作?(我对文档@Github不是很清楚)

正如我今天早上在“”中解释的那样,这个(即“<folder_name> → <SHA> [<SHA>]”)不是一个子模块。

一个子模块由以下部分组成:

  • 一个远程仓库url(存储在名为 .gitmodules 的文件中)
  • a SHA1 记录为 gitlink (special entry in the index)

如果您只记录 SHA1,而不记录 url,您将得到如下内容:

A git clone --recursive 将无法使用该 SHA1 克隆回购协议,因为它不知道其 url.

如果要将子项目作为子模块引用: