2012-04-02 10 views
1

gitブランチで作業しているときに問題が発生しました。 マスターブランチで、私はタグv2.0を含むサブモジュールを持っています。 私は新しいブランチに修正を加え、アーティファクトを少し変更し、サブモジュールを "git checkout v3.0"でv3.0に更新しました。これは私がコミットしました。 "git checkout master"を使用してmasterに切り替えました。サブモジュール構成が変更されたことを示すメッセージ "M submodule"が表示され、新しい変更が表示されます。サブモジュールはマスターブランチでもv3.0に変更されました。ブランチのサブモジュール構成

なぜこのようなことが起こりますか?サブモジュールのバージョンを自動的に変更することなくブランチ間で切り替えることができないのはなぜですか?

+0

サブモジュールの新しいバージョンをコミットしてもよろしいですか? – knittl

+0

サブモジュールは更新され、外部にコミットされます。スーパープロジェクト内からは変更されません。私はちょうど新しいブランチのサブモジュールの新しいタグをチェックアウトし、それをコミットし、これを見るとマスターに戻った。 – maxmelbin

+0

分岐を切り替える前に 'git status'が出力するのは何ですか?それはサブモジュールの変更を表示しますか? ( 'git status -s'も試してください) – knittl

答えて

3

修正ブランチにサブモジュールv3.0があります。マスターブランチにはサブモジュールv2.0があります。マスターブランチに戻った後、サブモジュールはv3.0のままであるため、 'git status'はサブモジュールの変更を示します。ブランチを切り替えると、 'git submodule update'を実行する必要があります。サブモジュールをv2.0(masterのバージョン)に戻します。

関連する問題