Dann habe ich ausgeführt git submodule update --init. Aber wenn ich gehe app/code/EthanYehuda/CronjobManager und die Fernbedienung zeigen, dann bekomme ich noch https://[email protected]/some_user/ethanyehuda_cronjobmanager.git
Beantwortet das deine Frage? Wie ändere ich das Remote-Repository für ein Git-Submodul?
– Poterka
5. Oktober 2021 um 11:50 Uhr
jthill
.gitmodules die vorgeschlagenen Standardeinstellungen enthält, werden Ihre Änderungen beim Einrichten nachfolgender Klone wirksam.
Sobald jedoch jemand den Klon erstellt hat, ist das resultierende Repository nur ein Repository. Sie können in das Verzeichnis Ihres vorhandenen Submoduls gehen und seine Ursprungs-Remote-URL auf die übliche Weise ändern, aber die git submodule Befehl hat eine praktische Abkürzung,
git submodule sync
um alle Lücken für Sie auszufüllen.
sync [--recursive] [--] [<path>…]
Synchronisiert die Remote-URL-Konfigurationseinstellung der Submodule mit dem in angegebenen Wert .gitmodules. Es wirkt sich nur auf die Submodule aus, in denen bereits ein URL-Eintrag vorhanden ist .git/config (das ist der Fall, wenn sie initialisiert oder neu hinzugefügt werden). Dies ist nützlich, wenn sich Submodul-URLs stromaufwärts ändern und Sie Ihre lokalen Repositories entsprechend aktualisieren müssen.
git submodule sync synchronisiert dabei alle Submodule git submodule sync -- A synchronisiert nur Submodul “A”.
Wenn --recursive angegeben ist, wird dieser Befehl in den registrierten Submodulen rekursiv ausgeführt und alle darin verschachtelten Submodule synchronisiert.
Funktioniert nicht. Ich habe die URL eines anderen Repositorys (app\code\Yireo\Webp2) mit geändert git remote set-url origin https://github.com/yireo/Yireo_Webp2.git. Dann habe ich ausgeführt git submodule sync. Aber die Datei .gitmodules wurde nicht mit der neuen URL aktualisiert.
– Schwarz
31. Januar 2020 um 14:24 Uhr
Nein, Sie müssen bereits aktualisiert haben .gitmodules, dann Submodul sync. Wie die zitierten Dokumente sagen, aktualisiert die Synchronisierung die Remote-Einstellungen von dem, was drin ist .gitmodules.
– jthill
31. Januar 2020 um 14:26 Uhr
Ich denke, diese Lösung wird funktionieren, wenn der Git-Verlauf nicht ganz anders ist.
– Schwarz
31. Januar 2020 um 15:37 Uhr
Häh? Wie wäre das wichtig? Git sucht nach dem aufgezeichneten Commit für einen Pfad in der dort verfügbaren Historie. URLs auf ein neues Repo umstellen, dort den Verlauf abrufen, fertig. Jetzt hat Ihr Submodul-Repo die Historien vom alten Upstream und dem neuen, daran ist nicht einmal ein bisschen falsch.
– jthill
31. Januar 2020 um 15:41 Uhr
Ein typisches Beispiel: Das war kein Verzeichnis, Sie haben nur einen Zeiger auf das unberührte Submodul-Repository in Ihrem Hauptprojekt gelöscht .gitund git submodule update stellte den Zeiger wieder her.
Das sieht viel komplizierter aus, als es sein sollte. Ist das der offizielle Weg?
– Schwarz
31. Januar 2020 um 13:10 Uhr
Schwarz
Für mich haben die gefundenen Lösungen nicht funktioniert, da sich die Git-Historie meines Repositorys vollständig von der Historie des neuen Repositorys unterscheidet.
Lassen Sie mich erklären. Ich habe ein Projekt als Zip-Datei erhalten. Ich habe ein neues Repo initialisiert und die Dateien übergeben und in meinen Bitbucket geschoben.
Dann fand ich heraus, dass es sich um ein öffentliches Github-Projekt handelt. Also wollte ich die URL zum Github-Repository ändern. Aber sie haben völlig unterschiedliche Git-Verläufe (Mein Repo hat nur einen anfänglichen Commit, während das Github-Repo alle Commits enthält.)
Es wird also nicht funktionieren, indem Sie einfach die URLs ändern.
Also musste ich das Submodul löschen und neu erstellen.
Hinweis: <name_of_submodule> = app/code/EthanYehuda/CronjobManager (in meinem Fall)
Fehler beim Abrufen des Submoduls app/code/EthanYehuda/CronjobManager: Der Server hat Anforderungen an das nicht angegebene Objekt 9b677ef0e750acb9292030306bd97a3ee2734c61 abgelehnt
↑ Wenn ein solcher Fehler auftritt, nachdem Sie das Projekt auf einen Klon gezogen haben, z. B. Staging, dann müssen Sie das tun sync und update --init nach git pull:
git submodule sync
git submodule update --init
Sie müssen Ihr Submodul löschen und neu synchronisieren, nachdem Sie die URL aktualisiert haben.
Bitte beziehen Sie sich auf diese Antwort. https://stackoverflow.com/a/14405542/1895270
Funktioniert nicht. Versuchte es Schritt für Schritt … Ich verstehe error: The server rejects a request for an object not offered 86bbb310a268106bae244bc50bb6232fa8f0727f.
– Schwarz
31. Januar 2020 um 12:34 Uhr
"fetch" executed in submodule path 'app / code / Fooman / GoogleAnalyticsPlus', but 86bbb310a268106bae244bc50bb6232fa8f0727f not contain. Requesting this commit directly failed.
– Schwarz
31. Januar 2020 um 12:43 Uhr
Ich denke, der Fehler wird angezeigt, weil mein erstes Repository mein eigenes ist, das nur einen anfänglichen Commit hat, und das neue mit einer ganz neuen Git-Historie von Github
– Schwarz
31. Januar 2020 um 12:59 Uhr
Wenn Sie nicht zu einem Repository mit einem völlig anderen Git-Verlauf wechseln, funktioniert Ihre Methode vermutlich.
– Schwarz
31. Januar 2020 um 13:11 Uhr
Funktioniert nicht. Versuchte es Schritt für Schritt … Ich verstehe error: The server rejects a request for an object not offered 86bbb310a268106bae244bc50bb6232fa8f0727f.
– Schwarz
31. Januar 2020 um 12:34 Uhr
"fetch" executed in submodule path 'app / code / Fooman / GoogleAnalyticsPlus', but 86bbb310a268106bae244bc50bb6232fa8f0727f not contain. Requesting this commit directly failed.
– Schwarz
31. Januar 2020 um 12:43 Uhr
Ich denke, der Fehler wird angezeigt, weil mein erstes Repository mein eigenes ist, das nur einen anfänglichen Commit hat, und das neue mit einer ganz neuen Git-Historie von Github
– Schwarz
31. Januar 2020 um 12:59 Uhr
Wenn Sie nicht zu einem Repository mit einem völlig anderen Git-Verlauf wechseln, funktioniert Ihre Methode vermutlich.
– Schwarz
31. Januar 2020 um 13:11 Uhr
14393600cookie-checkGit – So ändern Sie URL/Pfad eines Submodulsyes
Beantwortet das deine Frage? Wie ändere ich das Remote-Repository für ein Git-Submodul?
– Poterka
5. Oktober 2021 um 11:50 Uhr