Git 克隆到另一个现有的 Git 存储库中

  • 本文关键字:Git 存储 另一个 git
  • 更新时间 :
  • 英文 :


如果我将存储库克隆到现有的 git 存储库中,我会遇到任何问题吗?

为了简化起见,我正在开发一个库"lib/",它应该可用于我的所有项目。这是一个单独的 git 存储库。我想将此 lib/导入我的所有项目中,并且仅在一个地方更新它,永远不要从任何项目中触摸它,只需使用它。

我假设这没问题,只是想知道我是否应该注意什么。谢谢!

只是为了记录,您可以在另一个存储库中克隆一个 git 存储库:
您的 lib 目录下的所有内容都将被封闭的 Git 存储库忽略,因为所述 lib 目录包含一个.git

所以它会起作用,但封闭的回购不知道:

  • 它需要另一个存储库中的lib目录
  • 它需要该lib的特定修订才能正确构建,即使它会记录嵌套lib存储库树的 SHA1。(这是一个 gitlink,父存储库索引中的特殊条目)
    这意味着克隆封闭的存储库,您将获得一个空的" lib/"文件夹。

这些(存储库 URL 和存储库 SHA1)正是存储库(封闭的存储库)记录的两个信息,以便引用子模块
它旨在让您访问存储库中另一个存储库的固定修订版,但如"子模块的真实性质"中所述,这并不妨碍您直接在父存储库中本地修改lib
(只要您先在lib中提交修改,然后在父存储库中向上一级,并在那里提交)

对于主项目的任何贡献者来说,主要的好处是,当他们克隆所述项目时,如果将其声明为子模块,他们将知道他们也需要lib(如"Git 子模块工作流建议"中所述)。

如果您之前没有太多经验,我发现遵循本教程有助于理解子模块。

http://help.github.com/submodules/

https://chrisjean.com/git-submodules-adding-using-removing-and-updating/

最新更新