6

ユースケースは、特定のリポジトリを新しいサーバーに移動する必要があることです。したがって、これらのリポジトリは新しい URL を取得します。
これらのサブモジュールを参照する親プロジェクトは、サブモジュールの新しい URL で更新する必要があります。
私は次のことを考えています。

  1. .gitmodules ファイルを更新する
  2. git サブモジュールの同期
  3. git サブモジュールの更新
  4. コミットしてプッシュ

しかし、以前のコミットには以前のバージョンの .gitmodule が含まれているため、親プロジェクトの以前のコミットをチェックアウトすると、古いサーバーは検索されませんか?


再現性を確保するには、すべての古いコミットが機能する必要があります。これを回避するアイデアはありますか?

4

2 に答える 2

10

にある URL.gitmodulesは通常、サブモジュールを初期化するとき、または でのみ使用されgit submodule syncます。初期化時 ( git submodule init)、URL はリポジトリの.git/configに配置され、サブモジュールが所定の場所 ( git submodule update) に複製されると、使用する URL が構成から取得されます。の URL.gitmodulesが使用されるのは、 を実行するときだけですgit submodule sync。これにより、構成内の URL が同様に更新されますがorigin、サブモジュール内のリモートも同じ URL に設定されます。

これは、以前のコミットをチェックアウトして実行しても問題がないことを意味します。親リポジトリで新しいコミットをチェックアウトしても、サブモジュールgit submodule updateのリモートは変更されません。origin

于 2012-08-16T12:43:35.250 に答える