2012-11-25 166 views
2

在我的項目,即時通訊使用的第三方庫。我GIT克隆這個LIB在我的項目,然後在lib文件夾做了git submodule initgit submodule update。我把我的主項目推到github上,但是這個第三方lib的內容沒有被髮送,lib文件夾在我的github項目庫中顯示爲綠色文件夾。Git的子模塊

如果我克隆我的主項目在另一臺機器上,我沒有在那裏的lib的內容。所以,我應該再次克隆在機器上的lib並再次運行init和更新命令或有任何方式將第三方lib的內容推送到我的github回購?

謝謝你

回答

1

是的,子模塊本質上是一個自己的git存儲庫。父git項目只是引用特定的提交。有關如何維護它們的詳細信息,請參閱git子模塊的幫助。是的,您需要爲每個子模塊初始化和更新存儲庫,但是,您會發現有一些命令(在幫助中)可以爲您提供很多幫助。

4

注意,4月份以來,30日2013,當您查看存儲庫與github.com一個子模塊,你得到的子模塊有用的鏈接和信息:

submodule

現在你可以看到什麼確切的引用一個子模塊指向。

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" 
    } 
} 
1

我有同樣的問題:我想嘗試從github上託管的項目回購庫中的一些代碼,所以我克隆了它。構建命令不會工作,直到我的同事告訴我的魔法咒語:

混帳子模塊更新--init

其克隆回購引用正確的子模塊。從「git submodule help」或「man git-submodule」中,我都不清楚這一點。

祝你好運!