2010-01-02 11 views
10

Ich bekomme einen Hang von git submodule (Wunschdenken?) Und ich komme mit spezifischeren Fragen, die ein gutes Zeichen ist ...git submodul update nur anfangs benötigt?

Ich habe versucht, die welche Revision der zu finden Submodul, auf das sich das Superprojekt bezieht, in .gitmodules und .git/config, aber nichts ist dort erwähnt ...
Das Szenario ist, dass ich Submodule in ihren Stammorten (von denen sie importiert werden) ändern, und dann ziehen sie in, wo sie 're "submoduliert" ...
Über das Commit vom Superprojekt hinaus, um diese Änderungen in den Superprojekt-Repo einzubinden, muss ich auch "git update" eingeben, um die neuen Submodul-Commits zu registrieren?

Grundsätzlich ist die Frage:

muss ich „git submodule update“ nur dann, wenn ich zum ersten Mal die Superproject klonen, oder nach jedem Ziehen des Submodul (aus dem eigenen Repo)?

Danke

+0

Entschuldigung für die späte Antwort, ich habe Ihre neue Frage nach Ihrem vorherigen nicht gesehen (http://stackoverflow.com/questions/1979167) – VonC

Antwort

15

Wie in meiner früheren Antwort auf git submodule update erwähnt, dass der Befehl checkt die spezifische Version des Projektes Basis auf ihrer .gitmodules Datei.

The GitPro page does insist:

Dies ist ein wichtiger Punkt, mit Submodule: Sie sie als genaue begehen aufzeichnen an sie sind.

Sie können sehen, welche commit, indem Sie in der „Super-Projekt“ (die eine Referenzierung ein oder mehrere Submodule) verwiesen wird:

  • git submodule status (außer, wenn Sie einige in diesem Submodul direkt begangen hat, Thinat Fall es sich um eine „+“ vor dem SHA-1 des HEAD jeder Submodul zeigen, die von der SHA-1 gespeichert in der Superproject) oder
  • git ls-files --stage Suche Eintrag im Modus „160000“, einen speziellen Eintrag in der fortgeschritten Gi t Index.

Das heißt, jedes Mal, wenn Sie einen Git-Befehl in dem „Super-Projekt“ auszuführen, die das Submodul SHA1 verpflichten ändern könnten, müssen Sie ein „git submodule update“.

Muss ich "Submodul Update aktualisieren" nur wenn ich zuerst das Superprojekt klon, oder nach jedem Ziehen des Submoduls (aus seinem eigenen Repo)?

Ja, Sie müssen dies jedes Mal tun, wenn Sie im Hauptprojekt einen Submodulwechsel durchführen.
Das liegt daran, dass Sie auf die genaue Festschreibung verweisen, auf die sich der ursprüngliche Repo des Submoduls befindet (wie oben erwähnt), und wenn Sie diesen Repo ziehen, ändern Sie diesen Commit effektiv.

Verwandte Themen