Viele Leute (sowohl hier als auch im Internet insgesamt) schlagen Lösungen vor, die eine manuelle Bearbeitung oder Löschung mehrerer Dateien erfordern. Aber das ist wirklich nicht nötig!
Selbst in Umgebungen, in denen Git 2.25
(und damit git submodule set-url <path> <newurl>
) nicht verfügbar sind, ist die einfachste Lösung, das Submodul einfach "abzumelden" und es mit der neuen URL wieder hinzuzufügen.
Je nach Git-Version und Submodul-Setup können Sie könnte manuell entfernen müssen <path>
bevor es wieder hinzugefügt wird. Keine weiteren manuellen Aktionen erforderlich!
git submodule deinit <path>
rm -rf <path>
git submodule add <repository> [<path>]
Danach wird die .gitmodules
Datei hat eine andere URL und sollte übertragen werden. Alle anderen Stellen (Konfiguration, Arbeitsbaum) wurden bereits von Git bearbeitet.
Zu erklären, was deinit
möchte ich gerne aus dem Git-Handbuch zitieren:
deinit [-f|--force] (--all|[--] <path>…)
Deregistrierung der angegebenen Untermodule, d.h. Entfernen des gesamten submodule.$name
Abschnitt von .git/config zusammen mit ihrem Arbeitsbaum. Weitere Aufrufe [..] überspringen alle nicht registrierten Untermodule, bis sie erneut initialisiert werden