git - 如何从单独的项目中提取 git 子模块?

标签 git git-submodules

让我们把事情简单化好吗?

我已经设置了一个 git 项目。我们称之为 ProjectA。我的 friend 设置了另一个较旧的 git 项目,称为 ProjectB。在ProjectB中,他设置了两个子模块,SubOne和SubTwo。现在,当我说“设置”时,我的意思是他可以“git 子模块更新”它们。它们存在。

现在,出于自私,我想偷他的子模块(我不是真的偷,他把它们给了我)。

有没有办法在我的 ProjectA 中只提取他的子模块?如果是这样,怎么办?另外,由于我们正在开发姐妹项目,因此文件结构必须保持不变。也就是说,他的文件在 ext/SubOne 和 ext/SubTwo 下,而我的文件需要相同。

最后一件事;他知道如何创建子模块,但我们不再有它的 URL。

谢谢! NS

最佳答案

是的,您可以将他的子模块作为您的存储库中的子模块。一旦您获得了这些存储库所在服务器的 URL,一切就变得非常简单。

您是否尝试过使用 git config --list 命令获取子模块的 URL?在他的存储库中运行它。你会看到类似的内容:

submodule.lib.url=(url_to_submodule)

他还可以将子模块存储库推送到外部服务器,以便您可以访问它们。

一旦获得 URL,就很容易了:

git submodule add <url_to_submodule> <sub-directory>

关于git - 如何从单独的项目中提取 git 子模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3229042/

相关文章:

git-submodules - git子模块与npm包?

git clone -c core.symlinks=true 不起作用

git - 如果我忘记在 merge 前执行 git svn rebase 怎么办?

git - 如何仅使用管道命令访问 git log --stat 中显示的信息?

用于搜索提交消息的 Git 别名

git 和空文件夹

git - 为什么 hg 总是提交一个 git 子模块,即使它没有改变?

git - 如何将 git 子模块恢复到它的提交版本?

git - 如何在我的存储库中提交克隆的子模块?

git - 当您尝试 merge 回主干时,DVCS 如何缓解直接主干 checkin 的问题?