git 子模块添加不会添加存储库



我有一个来自远程存储库的项目,它是我项目中的一个子模块。我分叉了那个远程项目,删除了旧的子模块,然后尝试添加我的分叉副本。这行不通。

我所做的是:

 git submodule deinit path/to/sub
 git rm /path/to/sub
 git push origin mybranch

然后

 git submodule add url_of_forked_project_in_my_repo path/to/sub

收到一些关于存储库是本地的奇怪消息,我应该使用 --force 或 --name,尝试其中任何一个的最终效果是我的本地分支不会随着我所做的任何更改而更新,并且引用保留到旧的子模块 HEAD。

消息是:

"path/to/sub"的 git 目录在本地与远程找到: 原产地 git://github.com/SomeoneElse/project如果您想重用此本地 git 目录而不是从 git@github.com:myrepo/project.git使用"--强制"选项。如果本地 git 目录不是正确的存储库或者您不确定这意味着什么,使用"--name"选项选择另一个名称。

如果我使用 --force 选项,我能够获取子模块,但引用似乎没有更新,我在主项目的子模块中所做的更改不会传播到任何地方:这就是本地的意思吗?

无论如何,我只想要一个正常的、运行 mill 子模块,其中更新我的主项目副本会创建引用等更改。

任何帮助将不胜感激。

你并不孤单。我按照这个答案解决了这个问题。请记住,不仅需要删除.gitmodule文件中的相应代码段,还需要删除.git/modules下的子目录。

如果您使用文件夹中的链接对存储库进行版本控制,例如像我一样的 dotfile,您将被限制到应删除的模块的相关目录。

最新更新