wake-up-neo.com

Fügen Sie retrospektiv --recursive zu einem Git-Repo hinzu

Wenn Sie git clone mit --recursive sind, können Sie auch alle git-Submodule erhalten.

Wenn ich vergessen habe, diese magische Flagge beim Klonen hinzuzufügen, wie kann es passieren, wie kann ich jetzt Submodule bekommen?

Wie kann ich außerdem das rekursive Flag als Standard für zukünftige Klone festlegen?

56
kenneth

Sie können dies nach einem einfachen Klon der obersten Ebene tun:

git submodule update --init --recursive

Ich würde nicht empfehlen, dass Klone dies standardmäßig macht. Der richtige Weg, dies zu tun, wenn Sie Submodule für die Entwicklung aggressiv einsetzen und nicht nur eine Verknüpfung zu OSS-Bibliotheken von Drittanbietern auf Github herstellen, die Sie einmal in einem blauen Mond aktualisieren können, ist die Verwendung von git slave oder subtree .

Hoffe das hilft.

68
Adam Dymitruk
  1. Von der Wurzel Ihres Repos:

    $ git submodule update --init --recursive
    

    Dadurch werden alle registrierten Submodule aktualisiert und gegebenenfalls mit dem in der .gitmodules-Datei gefundenen Wert initialisiert. Außerdem werden komplexe Submodule (Submodule mit eigenen Submodulen) rekursiv erstellt und auch initialisiert und aktualisiert.

  2. Die einfachste Methode, die ich zum rekursiven Erstellen von Klonen verwenden kann, besteht darin, git clone mit einem Alias ​​zu spiegeln

    $ git config --global alias.clone = 'clone --recursive'
    

    Was das Hinzufügen von Optionen angeht, denke ich, dass dies die idiomatische Methode ist.

10
Tim Visher

IIRC, git submodule init, git submodule update

Leider sehe ich keine Option zum Aktivieren von rekursiv standardmäßig.

1
user502515

Anscheinend können Sie "clone" nicht mit dem Alias ​​"clone" überschreiben. Es handelt sich also um einen neuen Alias ​​(Abizern-Lösung) oder "--recursive". 

Ist es möglich, Git-Befehl durch Git Alias ​​zu überschreiben?

0