2012-04-02 8 views
1

ich konfrontiert mit einem Problem bei der Arbeit an Git-Filialen. Im Master-Zweig habe ich ein Submodul mit dem Tag v2.0 enthalten. Ich verzweigte zu einem neuen Branch say fix, nahm einige Änderungen an den Artefakten vor und aktualisierte das Submodul auf v3.0 über "git checkout v3.0". Dies habe ich begangen. Jetzt bin ich zurück zum Master gegangen, mit "git checkout master". Es wird eine Meldung "M Submodul" angezeigt, die darauf hinweist, dass die Submodulkonfiguration geändert wurde und eine neue Änderung anzeigt. Das Submodul hatte sich in der Master-Verzweigung auch auf v3.0 geändert.Submodul-Konfiguration in Zweigen

Warum passiert das? Warum kann ich nicht zwischen Zweigen wechseln ohne die Submodul-Versionen automatisch zu ändern?

+0

Sind Sie sicher, dass Sie die neue Version des Submoduls übernommen haben? – knittl

+0

Das Submodul wird aktualisiert und festgeschrieben, aber extern. Es wird nicht innerhalb des Superprojekts geändert. Ich habe gerade ein neues Tag des Submoduls in der neuen Filiale ausgecheckt, es festgeschrieben und zurück zum Master geschaltet, wenn ich das sehe. – maxmelbin

+0

Was wird 'git status' vor dem Umschalten der Zweige ausgegeben? Zeigt es eine Änderung am Submodul an? (versuche auch 'git status -s') – knittl

Antwort

3

Der Fix-Zweig hat Submodul v3.0; Der Masterzweig hat das Submodul v2.0. Nach dem Zurückschalten in den Master-Zweig bleibt das Submodul als v3.0 und somit zeigt 'git status' einen Submodul-Wechsel an. Wenn Sie die Verzweigung wechseln, müssen Sie ein 'git submodule update' durchführen - das bringt das Submodul zurück auf v2.0 (die Version für den Master).

Verwandte Themen