59

ランニングの違いは何ですか

git submodule update --remote

cd <submodule directoy>
git pull

サブモジュールが以前にいくつかのブランチを追跡するように設定されていたと仮定します。

git submodule add -b master [URL to Git repo]
4

1 に答える 1

62

違いは次のとおりです。

  • git pullサブモジュール ブランチのみを更新しますが、そのサブモジュール リポジトリで自分でチェックアウトした任意のブランチにすることができます。
  • git submodule update --remoteに登録されているブランチのみを更新.gitmoduleします。デフォルトでは、--rebaseまたは--mergeが指定されているか、キーが、またはsubmodule.$name.updateに設定されていない限り、切り離された HEAD になります。rebasemergenone

どちらの場合も、親リポジトリに戻り、新しいサブモジュール SHA1 参照を追加してコミットする必要があります。
これは、どちらの場合も、サブモジュールの SHA1 が変更されるためです。つまり、gitlink (サブモジュールのルート フォルダーにちなんで名付けられた、親リポジトリのインデックス内の特別なエントリ) を追加してコミットする必要があります。

Agit submodule update --init --remoteは次のようになります。

  • git submodule init: インデックスに記録されたサブモジュールを初期化 (チェックアウト) する
  • git submodule update --remote: サブモジュールが初期化 (チェックアウト) されたら、登録されたブランチ (またはデフォルトではマスター) からプルします。
于 2013-10-27T17:44:28.397 に答える