Ab Git-Version 1.9.3 (Apple Git-50) auf dem Mac Wie entferne ich ein Git-Submodul? Ich lese eine Menge veralteter Informationen, und viele Entwickler sagen mir, dass sie nicht funktionieren. Was ist der aktuelle Weg? wird git deinit pathToSubModule
der Trick machen?
Die Schritte, von denen ich dachte, dass sie funktionieren würden, sind hier, aber Kommentare sagen, dass sie nicht funktionieren .
Lassen Sie mich meine aktuelle Situation erklären und erklären, was ich erreichen muss. Ich habe das Quick-Repository installiert und es als Submodul zu meinem Projekt hinzugefügt. Dieser Code ist bereits eingecheckt und wird von anderen verwendet. Was ich jetzt tun müssen , ist die Gabel die gleiche Schnell Repository und Host es auf einem sichereren Github , dass meine Firma hat (so eine völlig andere private Github). Nachdem ich es gegabelt habe, möchte ich diese Gabel als gitSubmodule hinzufügen und sie das aktuelle Quick-Submodul ersetzen lassen, das ich zuvor installiert hatte.
Update: Ich habe gelesen, dass das Folgende der richtige Weg für die neueste Git-Version ist. Bitte bestätigen Sie.
To remove a submodule added using:
git submodule add [email protected]:repos/blah.git lib/blah
Run:
git rm lib/blah
That's it.
For old versions of git (circa ~1.8.5) use:
git submodule deinit lib/blah
git rm lib/blah
git config -f .gitmodules --remove-section submodule.lib/blah
quelle
Antworten:
Du hast die
git submodule deinit
deinit
quelle
rm -rf <asubmodule>
Sie auch, wenn Sie bereits eine Version des Basis-Repositorys ausgecheckt haben, bei der das Submodul nicht registriert wurde.Ich benutze Git Version 2.16.2 und
git rm
mache den Job meistens gut:Sie können mit verifizieren
git status
undgit diff --cached
dass diese deinitializes das Submodul und modifiziert.gitmodules
automatisch. Wie immer müssen Sie die Änderung festschreiben.Obwohl das Submodul aus der Quellcodeverwaltung entfernt wurde,
.git/modules/path-to-submodule
enthält es dennoch das Submodul-Repository und.git/config
seine URL, sodass Sie diese manuell entfernen müssen:Das Beibehalten des Submodul-Repositorys und der Konfiguration ist beabsichtigt, damit Sie das Entfernen mit z
git reset --hard
.quelle
So entfernen Sie ein Submodul sicher.
(fügt zu https://stackoverflow.com/a/1260982/342794 hinzu )
Listen Sie den Submodulabschnitt in der
.gitmodules
Datei auf und suchen Sie ihn . Sprich über Terminalvi .gitmodules
. Beispiel:Submodule können mit lokalen Gabeln verwendet werden. Bei Projekten mit langer Laufzeit kann der Code vom ursprünglichen Repo abweichen und einige Korrekturen aufweisen. Es ist eine gute Idee zu überprüfen, ob der Submodulcode im Verlauf des Projekts Änderungen erfahren hat. Beispiel: Sehen Sie sich die Protokolle an, wenn sie auf einen
master
Zweig oder einen lokalen Zweig zeigen. Durchsuchen von Git-Protokollen, um Änderungen zu finden, die über das Terminal vorgenommen wurden. Normalerweise werden diese in einem Verzeichnis gespeichert, in meinem Beispiel untersubmodules
Verzeichnis.Entfernen Sie den Submodulabschnitt aus .gitmodules und speichern Sie die Datei. Beispiel:
git status
sollte nur folgendes als geändert anzeigenStellen Sie die Änderungen mit
git add .gitmodules
.Listen Sie den Submodulabschnitt in
.git/config
Dateien auf und suchen Sie ihn . Sprich über Terminalvi .git/config
. Beispiel:Entfernen Sie die Git-Cache-Sobmodule-Dateien. Laufen
git rm --cached submodules/afnetworking
(kein abschließender Schrägstrich) würde es erfolgreich entfernen. Beispiel:Entfernen Sie die Submodul-Dateien unter
.git
Verzeichnis mitrm -rf .git/modules/...
. Bestätigen Sie es anschließend mitgit status
.Übernehmen Sie die Änderungen. Bestätigen Sie anschließend mit
git status
.Löschen Sie die nicht verfolgten Submodul-Dateien.
Löschen Sie die Referenzen aus dem Xcode-Projekt. Erstellen, Beheben von Kompilierungs- und Laufzeitproblemen.
quelle