子模块未显示在仓库中

时间:2015-06-29 13:34:16

标签: git github rpm

我正在构建一些自定义rpm包,并且我正在尝试将另一个项目的源包含为要构建的子模块。在我第一次运行期间,我添加了包,当我查看Github页面时,我可以看到显示链接子模块的图标,但它位于错误的位置。

我做了一些更改,将子模块放在我需要它的位置(在/SOURCES文件夹中)但是当我提交或尝试做任何事情来更新repo时,我没有看到任何表明子模块正在加载的内容正确的地方。
使用submodule update或任何其他相关命令时,我也看不到任何更改。

我应该删除.gitmodules文件并重新开始吗?我担心会产生无法预料的后果。是否有任何命令告诉git检查.gitmodules文件并采取相应的措施?

感谢您的帮助。

3 个答案:

答案 0 :(得分:7)

我为其他可能偶然发现这个帖子的人找到了解决方法。在搞乱更新后,我最终再次使用git submodule add --force <url> <path>添加子模块。 --force选项是必要的,因为git正在查看另一个具有相同名称的模块。不知怎的,这个链接被破坏了,没有更新。在此步骤运行git submodule update之后,填充了目录并在github页面中显示了一个表示更改的链接。

我在以下链接中找到了这些信息:

Link

答案 1 :(得分:4)

在使用子模块之前,你必须初始化,然后才能更新它们。

git submodule add <url> <name>

然后您.git/config应包含以下条目:

[submodule "name"]
    path = extension
    url = <url>

现在你有一个项目中的子模块,此时你必须初始化并安装&#34;它位于主存储库下(它应该将子模块内容克隆到定义的路径)。

git submodule init
git submodule update

现在你们都准备好了。

  

当我提交或尝试做任何事情来更新回购时,我没有看到任何表明子模块正在加载到正确位置的内容。

submodule是一个独立的存储库,因此在子文件夹文件夹中进行的任何更改都不会在此文件夹之外显示,反之亦然。

在子模块下进行的任何更改都必须在子模块文件夹中单独提交。

答案 2 :(得分:0)

好的。因此,对于在导入空存储库作为子模块时遇到同样问题的任何人。

对我来说它不起作用只是因为我作为子模块添加的 repo 是空的,所以我在那个 repo 中创建了一个文件,推送它,然后重新运行所有内容。

希望我帮助了某人。