2

私のプロジェクトでは、サードパーティのライブラリを使用しています。私は自分のプロジェクトでこの lib を git clone してから、lib フォルダーで実行git submodule initしました。git submodule updateメイン プロジェクトを github にプッシュしましたが、このサード パーティの lib のコンテンツは送信されず、lib フォルダーが github プロジェクト リポジトリの緑色のフォルダーのように表示されます。

別のマシンでメイン プロジェクトのクローンを作成した場合、そこに lib のコンテンツがありません。したがって、マシンで lib を再度 git clone し、init コマンドと update コマンドを再度実行する必要がありますか、それともコンテンツをプッシュする方法はありますか私のgithubレポへのサードパーティのライブラリ?

ありがとうございました

4

3 に答える 3

4

2013 年 4 月 30 日以降、github.com でサブモジュールを含むリポジトリを表示すると、サブモジュールに関する有用なリンクと情報が得られることに注意してください。

サブモジュール

サブモジュールが指している正確な参照を確認できるようになりました。

リポジトリ コンテンツ 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"
  }
}
于 2013-04-30T13:11:28.940 に答える
1

はい、サブモジュールは本質的にそれ自体のgitリポジトリです。親gitプロジェクトは、特定のコミットを参照するだけです。それらを維持する方法の詳細については、gitサブモジュールのヘルプを参照してください。はい、各サブモジュールのリポジトリを初期化して更新する必要がありますが、多くのことを実行するコマンド(ヘルプ内)があることがわかります。

于 2012-11-25T14:02:39.447 に答える