417 Stimmen

Keine Submodulzuordnung in .gitmodule für einen Pfad gefunden, der kein Submodul ist

Ich habe ein Projekt, das ein Submodul unter lib/three20

Meine .gitmodule Datei sieht wie folgt aus:

[submodule "lib/three20"]
    path = lib/three20
    url = git://github.com/facebook/three20.git

Ich habe dies in der Vergangenheit ohne Fehler geklont, ( git submodule init gefolgt von einer git submodule update ) und es funktioniert schon seit einer Weile.

Ich habe versucht, diese auf einen neuen Rechner zu klonen, und jetzt erhalte ich diesen Fehler bei git submodule init :

No submodule mapping found in .gitmodules for path 'Classes/Support/Three20'

Dieser Pfad ist nur ein leerer Ordner in Xcode, den ich verwende, um die Projekte aus dem anderen Verzeichnis unterzubringen. Er ist nicht Teil des .gitmodules Datei, also weiß ich nicht, woher der Pfad kommt.

Irgendwelche Ideen?

2voto

Simone Punkte 18720

Wenn Sie haben:

  • entfernte das Submodul mit einem einfachen rm anstelle von git rm ;
  • den Verweis auf das Submodul in .gitmodules ;
  • den Verweis in .git/config ;

Und Sie erhalten immer noch den Fehler, was es für mich löste, war das Zurücklesen eines leeren Ordners, wo das Submodul war. Sie können dies mit tun:

mkdir -p path/to/your/submodule
touch path/to/your/submodule/.keep

.keep ist einfach eine leere Datei. git commit und der Fehler sollte verschwinden.

2voto

Tanjin Alam Punkte 340

Ordnerstruktur

xyz folder as root directory which contains 2 folder as submodule
  -- product
  -- user

Führen Sie folgenden Befehl vom Root-Verzeichnis aus

git rm --cached product/
git rm --cached user/

Wechseln Sie in das Produktverzeichnis und führen Sie

 git submodule update --init

Wechseln Sie in das Benutzerverzeichnis und führen Sie

git submodule update --init

wieder ins Root-Verzeichnis wechseln cd ..

git add --all

1voto

yilmi Punkte 162

Normalerweise erstellt Git ein verstecktes Verzeichnis im Wurzelverzeichnis des Projekts (.git/)

Wenn Sie an einem CMS arbeiten, ist es möglich, dass Sie Module/Plugins installieren, die das Verzeichnis .git/ mit den Git-Metadaten für das jeweilige Modul/Plugin tragen

Die schnellste Lösung ist, alle .git-Verzeichnisse zu finden und nur das Root-Git-Metadatenverzeichnis zu behalten. Wenn Sie dies tun, wird Git diese Module nicht als Projektuntermodule betrachten.

1voto

Kelsey Punkte 541

Nach einem Blick auf meine .gitmodules Es stellte sich heraus, dass ich einen Großbuchstaben hatte, der nicht hätte sein sollen. Denken Sie also daran, dass die .gitmodules Verzeichnisse sind Groß- und Kleinschreibung beachten

1voto

Ich löschte das Repo und führte diesen Befehl aus

git clone --recurse-submodules https://github.com/chaconinc/MainProject

Danach hat es bei mir gut funktioniert, denn keine der Optionen hier war hilfreich

Was sie tut, ist:

  1. Klonen Sie das Haupt-Repository
  2. Initialisierung der Submodule auf einmal direkt nach dem Klonen

Und das war's

Weitere Informationen finden Sie unter folgendem Link

Untermodule

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X