223

リモートリポジトリをプルするリポジトリを作成したいと思います。

たとえば、サブモジュールとして jQuery を考えてみましょう。

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

サブモジュールとして jQuery を使用してリポジトリを作成し、リモート リポジトリとして独自の外部を追加するプロセスはどのようなものでしょうか。

また、これがセットアップされたら、自分のリモコンを押したり引いたりすると、外部はそのまま残りますか?

4

4 に答える 4

359
  1. プロジェクトがあります --既に github リポジトリを持っているMyWebAppと呼びます
  2. プロジェクトでjquery リポジトリを使用したい
  3. jquery リポジトリをsubmoduleとしてプロジェクトに取り込みます。

サブモジュールは、参照と使用が非常に簡単です。既に MyWebApp がレポとして設定されていると仮定すると、端末から次のコマンドを発行します。

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

これにより、* という名前のディレクトリが作成externals/jqueryされ、github jquery リポジトリにリンクされます。サブモジュールを初期化し、コードを複製する必要があります。

git submodule update --init --recursive

これで、すべての最新コードがサブモジュールに複製されたはずです。jquery リポジトリが変更され、最新のコードを取得したい場合は、submodule updateコマンドをもう一度発行してください。注: 通常、プロジェクトには多数の外部リポジトリがあるため、リポジトリは常に「externals」ディレクトリの下にグループ化されます。

オンラインのPro Git Bookには、サブモジュール (および一般的な git) に関する優れた情報が読みやすい形式で掲載されています。代わりに、git help submodule良い情報も提供します。または、git wikiのGit サブモジュール チュートリアルをご覧ください。

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

* ベスト プラクティスとして、サブモジュールは常に Externals などの独自のディレクトリに配置する必要があります。そうしないと、プロジェクトのルート ディレクトリが急速に雑然としてしまう可能性があります。

于 2011-03-05T18:17:12.373 に答える
26

あなたが知る必要があることのほとんどはすでに回答されているので、私はそれについて言及するつもりはありませんが、通常は不足している小さな情報を見つけました.

ご存知のように、「git pull」はサブモジュールを更新せず、「git submodules update」もそれらのサブモジュールの最新の HEAD をダウンロードしません。

すべてのサブモジュールを最新のアップストリーム リビジョンに更新するには、次を使用できます。

git submodule foreach git pull

サブモジュールを頻繁に変更し、その数が多い場合は、「git foreach」が非常に役立ちます。

于 2012-05-11T04:06:44.110 に答える
3

結局、 http: //github.com/evilchelu/braidは、サブモジュールとリモートが機能することを期待していた方法に適合しているように見えました。

于 2010-05-31T11:39:03.013 に答える