1. ホーム
  2. ギット

[解決済み】外部レポのサブモジュールを使用するためにgitプロジェクトをセットアップする方法は?

2022-04-08 17:29:35

質問

リモートのレポをプルインするレポを作りたいのですが、どうすればいいですか?

例えば、サブモジュールとしてjQueryがあるとします。

git://github.com/jquery/jquery.git

jQueryをサブモジュールとしたレポを作成し、リモートレポとして自分の外部を追加する場合、どのような流れになるのでしょうか。

また、一度設定した後、自分のリモートにpush/pullした場合、外部はそのまま残るのでしょうか?

解決方法は?

  1. プロジェクトがあり、その名前は MyWebApp すでにgithubのレポがある
  2. を使用したい場合 jquery リポジトリ プロジェクトで
  3. プロジェクトに jquery repo を サブモジュール .

サブモジュールの参照と使用はとてもとても簡単です。すでにMyWebAppがレポとして設定されていると仮定して、ターミナルから以下のコマンドを実行してください。

cd MyWebApp
git submodule add git://github.com/jquery/jquery.git externals/jquery

という名前のディレクトリが作成されます。 externals/jquery * そして、github の jquery リポジトリにリンクします。あとはサブモジュールをinitして、そこにコードをクローンするだけです。

git submodule update --init --recursive

これで、最新のコードをすべてサブモジュールにクローンできたはずです。jquery のリポジトリが変更され、最新のコードを取り込みたくなったら submodule update コマンドを再度実行します。注意: 私は通常、プロジェクト内にいくつもの外部リポジトリを持つので、常に "externals" ディレクトリの下にリポジトリをグループ化しています。

オンライン プロGitブック サブモジュール(とgit全般)についての良い情報が、読みやすくまとめられています。あるいは git help submodule も良い情報を与えてくれるでしょう。あるいは Git サブモジュール・チュートリアル をgit wikiでご覧ください。

サブモジュールについて、Subversion の svn:externals メカニズムと比較しているこのブログエントリに気づきました。 http://speirs.org/blog/2009/5/11/understanding-git-submodules.html

<サブ * ベストプラクティスとして、サブモジュールは常にExternalsのような独自のディレクトリに配置する必要があります。そうしないと、プロジェクトのルートディレクトリが非常に早く散らかってしまいます。