Git克隆到另一个现有的Git回购

时间:2012-04-28 03:36:24

标签: git

如果我将repo克隆到现有的git repo中,我是否会遇到任何问题?

为简化起见,我正在开发一个应该可供我所有项目使用的库“lib /”。这是一个单独的git repo。我想将这个lib /导入到我的所有项目中,并且只在一个地方更新它,从不接触任何项目,只需使用它。

我假设这没关系,只是想知道是否有什么我应该注意的。谢谢!

2 个答案:

答案 0 :(得分:42)

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

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

  • 它需要来自另一个repo的lib目录
  • 它需要正确构建lib特定版本,即使它会记录嵌套的lib repo树的SHA1。 (这是 gitlink ,父回购索引中的特殊条目)
    这意味着克隆封闭的仓库,你将获得一个空的“lib/”文件夹。

那些(repo URL和repo SHA1)正是由 parent repo(封闭式)重新记录的两个信息,以便引用 submodule
它是为了让您访问您的仓库中另一个仓库的修复版本,但正如“子模块的真实性质”中所述,这不会阻止您在本地修改lib直接在您的父级回购中。
(只要您先在lib中提交修改,然后在父级仓库中返回一级,并在那里提交)

主项目的任何贡献者的主要好处是,当他们克隆所述项目时,他们会知道如果它被声明为子模块,他们也需要lib(如“{{3}中所述) }“)。

答案 1 :(得分:6)

我发现,如果您没有太多的经验,请参阅本教程有助于理解子模块。

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

http://chrisjean.com/2009/04/20/git-submodules-adding-using-removing-and-updating/