繁体   English   中英

github repo中的Git子模块

[英]Git submodules in github repo

在我的项目中,即时通讯使用了第三方库。 我已经在我的项目中git克隆了这个lib,然后在lib文件夹中完成了git submodule initgit submodule update 我将主项目推送到github,但未发送该第三方lib的内容,并且lib文件夹在github项目存储库中看起来像绿色文件夹。

如果我在另一台机器上克隆我的主项目,我那里没有lib的内容,那么我应该在机器上再次git克隆lib并再次运行init和update命令,或者是否有任何方法可以推送我的github存储库的第三方库?

谢谢

请注意,自2013年4月30日起,当您在github.com上查看带有子模块的存储库时,会获得该子模块的有用链接和信息:

子模块

现在,您可以看到子模块指向的确切引用。

Repository Contents API将反映该SHA1。

curl https://api.github.com/repos/jquery/jquery/contents/test/qunit

{
  "name": "qunit",
  "path": "test/qunit",
  "type": "submodule",
  "submodule_git_url": "git://github.com/jquery/qunit.git",
  "sha": "6ca3721222109997540bd6d9ccd396902e0ad2f9",
  "size": 0,
  "url": "https://api.github.com/repos/jquery/jquery/contents/test/qunit?ref=master",
  "git_url": "https://api.github.com/repos/jquery/qunit/git/trees/6ca3721222109997540bd6d9ccd396902e0ad2f9",
  "html_url": "https://github.com/jquery/qunit/tree/6ca3721222109997540bd6d9ccd396902e0ad2f9",
  "_links": {
    "self": "https://api.github.com/repos/jquery/jquery/contents/test/qunit?ref=master",
    "git": "https://api.github.com/repos/jquery/qunit/git/trees/6ca3721222109997540bd6d9ccd396902e0ad2f9",
    "html": "https://github.com/jquery/qunit/tree/6ca3721222109997540bd6d9ccd396902e0ad2f9"
  }
}

是的,子模块本质上是它自己的git存储库。 父git项目仅引用特定的提交。 有关如何维护它们的详细信息,请参考git子模块的帮助。 是的,您确实需要初始化和更新每个子模块的存储库,但是,您会发现有一些命令(在帮助中)可以为您做很多事情。

我遇到了同样的问题:我想从github上托管的项目存储库中尝试一些代码,所以我克隆了它。 在我的同事告诉我有关魔咒的内容之前,没有任何构建命令起作用:

git子模块更新--init

正确克隆了仓库中引用的子模块。 从“ git submodule help”或“ man git-submodule”,这些对我来说都不是很清楚。

祝好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM