6

サブモジュールの競合が発生した場合 (つまり、マージする 2 つのコミットに、参照されたコミットの異なる変更が含まれている場合)、サブモジュールを「自分の」コミットに簡単に設定するにはどうすればよいですか? ファイルの場合は、次のように実行します。

git checkout --theirs <file>

ただし、これはサブモジュールでは機能しません。submoduleより技術的なレベルでは、私が持っているのは、ステージ12、および3を含むインデックスです。

$ git ls-files -s module
160000 89b085c4269259fa22632353071e6875f158afde 1       submodule
160000 b9ad3bc8aafdf52a2adf74620afae8934474b82d 2       submodule
160000 1afd42893d18ef5edeeadd67e7c65262505e6004 3       submodule

そして、私が望むのは、ステージ0に「彼らの」バージョンを含めることです:

$ git ls-files -s module
160000 1afd42893d18ef5edeeadd67e7c65262505e6004 0       submodule

更新:参照http://fiji.sc/wiki/index.php/Git_submodule_tutorialの誤ったアサーションが削除されました。

更新 2:インデックス関連の例が追加されました。

4

1 に答える 1

3

親リポジトリは、サブモジュール リポジトリの現在の作業バージョンを参照するだけです。「サブモジュール ポインター」は、常にサブモジュールの作業コピーを指します。

そのため、サブモジュール リポジトリを必要な状態にする必要があります (この特定のケースでは、「自分の」バージョンに更新することによって)。その後、「サブモジュール ポインター」は自動的に更新されます (もちろん、変更をコミットする必要があります)。

于 2012-06-29T04:46:57.630 に答える