サブモジュールを最新のコミットに更新する 質問する

サブモジュールを最新のコミットに更新する 質問する

ライブラリであるプロジェクト A があり、それがプロジェクト B で使用されています。

プロジェクト A と B は両方とも github 上に別々のリポジトリを持っていますが、B 内には A のサブモジュールがあります。

リポジトリ A にあるライブラリのいくつかのクラスを編集し、リモート リポジトリにプッシュしたので、ライブラリ (リポジトリ A) が更新されました。

これらの更新は「参照」(サブモジュール)に反映されません。サブモジュールは以前のコミットを参照します。git でサブモジュールを更新するにはどうすればよいでしょうか?

ベストアンサー1

サブモジュールディレクトリを入力します:

cd projB/projA

プロジェクト A からリポジトリをプルします (親プロジェクト B の git ステータスは更新されません)。

git pull origin master

ルートディレクトリに戻って更新を確認します。

cd ..
git status

サブモジュールが以前に更新されていた場合は、以下のように表示されます。

# Not currently on any branch.
# Changed but not updated:
#   (use "git add ..." to update what will be committed)
#   (use "git checkout -- ..." to discard changes in working directory)
#
#       modified:   projB/projA (new commits)
#

次に、更新をコミットします。

git add projB/projA
git commit -m "projA submodule updated"

アップデート

@paulが指摘したように、git 1.8以降では、

git submodule update --remote --merge

サブモジュールを最新のリモートコミットに更新します。ほとんどの場合、便利です。

おすすめ記事