gitサブモジュールforeach git pull起点マスターとgit pull --recursive-submodules


3

私はいくつかのサブモジュールでリポジトリを管理しています。しばらくの間私は使っています

$ git submodule foreach git pull origin master

これらの人たち全員のために最新の変更を引き込むこと。しかし、最近私はについて学びました

$ git pull --recurse-submodules

試してみましたが、変更はフェッチされているだけなので、必要です。

$ git submodule update --recursive

実際に変更をチェックアウトするために。しかし、サブモジュールが明らかに変更を引っ張っているにもかかわらず、これは私のリポジトリでは何もしないようです。私はまた、私のサブモジュールがmasterやなんらかのブランチではなくコミットのためにチェックアウトされていることに気づきました。

  1. 私は何かが不適切にやっていますか?
  2. またはこれはの成果物です。 foreach 私は物事をするのが常であった方法?
  3. どうすれば問題を解決できますか pull --recurse-submodules そして submodule update --recursive 期待通りに動作しますか?

回答:


1

git submodule update --recursive 親リポジトリ内のコミットと一致するようにサブモジュールを更新します。なので、あなたはそのコマンドのために親リポジトリへの変更をコミットする必要があります。

この設定では:

/proj/.git
/proj/module/.git

あなたは「モジュール」を変更し、コミットし、そしてそれらをプッシュします。 "proj"では、モジュールをコミットします(サブモジュールのコミットハッシュの変更のみを示しています)。

サブモジュールの更新を引っ張ってサブモジュールを更新すると、新しいコミットを使用するように "module"を更新します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.