如何更新子模块的远程

问题描述 投票:0回答:2

我目前正在开发一个项目,我使用 .gitmodules 将外部存储库合并为子模块。最近,我需要引入一些自定义功能,因此我直接在子模块中进行更改并将它们推送到我的项目的存储库中。但是,当我的团队成员从我的分支中撤出时,他们没有收到我在子模块中所做的更改。

在意识到我缺乏对原始子模块存储库的写访问权限后,我决定分叉它并在 .gitmodules 中使用分叉存储库的 URL。随后,我在子模块中进行了进一步的更改,并尝试将它们推送到分叉存储库。然而,我的更改仍然被定向到原始存储库,导致我的团队成员没有收到更新。

在这种情况下更新子模块的正确方法是什么,以确保从主项目存储库中提取的所有团队成员都能正确反映子模块中所做的更改?

git fork git-submodules git-remote
2个回答
0
投票

您可能必须在 main 项目中更新对子模块的引用,这基本上是对提交的引用。 这里还有另外两个 stackoverflow 问题,我可以给出更好、更详细的答案:


0
投票

我决定分叉它并在 .gitmodules 中使用分叉存储库的 URL。

实际更新子模块遥控器的最佳方法是使用

git remote set-url <URL>
。始终使用 Git 的命令而不是执行手动编辑。

在您的情况下,只需输入子模块的文件夹并启动:

git remote set-url origin 'forked_URL'

命令将使用给定的 URL 更新对远程存储库的引用。

更改遥控器的 URL。将与正则表达式匹配的远程的第一个 URL(如果没有给出则为第一个 URL)设置为 .如果不匹配任何 URL,则会发生错误并且不会发生任何更改。

此时,您应该能够将更改推送到分叉存储库。

© www.soinside.com 2019 - 2024. All rights reserved.