子模块没有出现在回购中

eig*_*nts 4 git rpm github

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

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

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

谢谢你的帮助.

eig*_*nts 11

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

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

链接


Cod*_*ard 5

在使用子模块之前,您必须先进行初始化,然后才可以对其进行更新。

git submodule add <url> <name>
Run Code Online (Sandbox Code Playgroud)

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

[submodule "name"]
    path = extension
    url = <url>
Run Code Online (Sandbox Code Playgroud)

现在您在项目中有子模块,这时您必须初始化并将其“安装”在主存储库下(它应将子模块内容克隆到定义的路径)。

git submodule init
git submodule update
Run Code Online (Sandbox Code Playgroud)

现在你们都准备出发了。


当我提交或尝试执行任何操作来更新仓库时,我没有看到任何指示子模块正在正确位置加载的信息。

submodule 是一个独立的存储库,因此子模块文件夹内所做的任何更改在此文件夹外部均不可见,反之亦然。

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