fatal: in unbestücktem Submodul

Lesezeit: 4 Minuten

Benutzer-Avatar
Junjie Wang

Ich bin ziemlich neu bei github und versuche, eine Lösung für ein aktuelles Problem zu finden, das ich habe. Ich werde meinen Prozess Schritt für Schritt durchgehen:

Zuerst habe ich einen neuen Ordner mit dem Namen erstellt [project name]
Als nächstes habe ich diese Befehle verwendet:

    cd [project name]
    git clone [remote project from github url]

Bisher habe ich einen Ordner erstellt und ein Projekt geklont, an dem meine Gruppe in Github arbeitet.

Als nächstes ging ich in diesen Ordner und erstellte ein eckiges Projekt mit

    ng new [angulartest]

Dadurch werden alle Komponenten meines Winkeltests in demselben Ordner erstellt, der der Klon des von github ist.

Abschließend habe ich den neuen Winkeltest auf github mit gepusht

    git add [angulartest]
    git commit
    git push

Was passiert ist, dass es nur den Ordner schiebt [angulartest] aber keinen seiner Inhalte (obwohl Inhalte darin sind). Wenn ich versuche, aus seinem Inhalt zu ziehen, bekomme ich immer noch nur einen leeren Ordner zurück.

Wenn ich versuche, diesen Ordner aufzurufen und jedes Element des Inhalts hinzuzufügen, gehe ich folgendermaßen vor:

    cd [angulartest]
    git add e2e, src, nodemodules, etc
    git commit
    git push

Es gibt mir den folgenden Fehler (selbst wenn ich versuche, jedes Element einzeln hinzuzufügen):

fatal: in unpopulated submodule [angulartest]

Ich habe mich gefragt, ob es ein Problem mit meiner Git-Syntax, dem Winkelprojekt oder der Art und Weise war, wie ich versucht habe, das Projekt zu klonen. So weiß ich, in welche Richtung ich bei der Suche nach einer Lösung gehen möchte.

Benutzer-Avatar
Peter

Es scheint, als hätten Sie die möglicherweise entfernt .git Mappe. In diesem Fall können Sie es versuchen

 git rm --cached angulartest -f

  • Ich musste ein paar Ebenen nach oben gehen, um Dateien bereitzustellen.

    – Zeus

    27. November 2018 um 20:51 Uhr

  • Nun, nun, was weißt du … das hat alles für mich repariert! Vielen Dank, git ist knifflig (aber oh so nützlich!)

    – Gwyneth Llewelyn

    26. März 2020 um 17:04 Uhr

  • Danke und es hat gut funktioniert, als ich dem Git-Ordner ein neues Projekt hinzugefügt habe, mein Fehler, da es bereits git init war und daher nicht zu Github ging, aber jetzt funktioniert git rm –cached für mich

    – Benutzer2244131

    10. April um 16:09 Uhr

Benutzer-Avatar
alphablend.dev

git rm --cached . -rf

Diebstahl aus anlijudavids Kommentar, der die eigentliche Antwort für mich auf macOS mit zsh war. Hinzufügen von -r basierend auf Richard Collettes Kommentar zu dieser Antwort.

  • fatal: Entfernen von ‘.’ rekursiv ohne -r

    – Stepan Jakowenko

    7. Mai 2020 um 18:29 Uhr

  • Ich musste -r hinzufügen, um den Zeitraum zu verwenden.

    – Richard Collette

    30. Mai 2020 um 19:29 Uhr

  • @RichardCollette Sie sind auf Linux, schätze ich?

    – alphablend.dev

    31. Mai 2020 um 7:44 Uhr

  • @eyecandy.dev MacOS

    – Richard Collette

    1. Juni 2020 um 21:53 Uhr

  • Danke, ‘git rm –cached .’ hat es geschafft

    – Raj Malik

    26. April um 14:56 Uhr

Benutzer-Avatar
nadinnnnnne

Die Hauptursache für diesen Fehler in meinem Fall war, dass ich ein eigenes Unterverzeichnis habe .git Ordner drin. Als ich die herausgab git add --all Befehl, ich habe den gleichen Fehler

Hier ist, wie ich das Problem gelöst habe

  1. Alles entfernen .git Ordner innerhalb des Unterverzeichnisses, das den Fehler verursacht
  2. cd zum Hauptverzeichnis
  3. git rm --cached sub_directory_name -f
  4. git add --all um das Unterverzeichnis und den Inhalt rekursiv hinzuzufügen
  5. git status um zu überprüfen, ob die Elemente hinzugefügt wurden

Ich habe fast Kopfschmerzen mit diesem Fehler bekommen, aber danke für die vorherigen Antworten, eine Kombination davon hat bei mir funktioniert.

Folgendes habe ich getan

  1. Erstellen Sie eine Kopie des Verzeichnisses „submodule“ irgendwo außerhalb des Repositorys (z. B. auf Ihrem Desktop).
  2. Löschen Sie das Submodulverzeichnis aus Ihrem Repo
  3. Committen Sie das Repository
  4. Gehen Sie in die Kopie, die Sie von Ihrem Submodulverzeichnis gemacht haben, löschen Sie .gitignore Datei und .git Verzeichnis
  5. Kopieren Sie das Submodulverzeichnis zurück in Ihr Repo und übergeben Sie es

Dies bedeutete, dass ich den Commit-Verlauf des Submoduls verloren habe, aber zumindest das Problem behoben wurde, dass meine Dateien im Submodul nicht git wurden!

Benutzer-Avatar
Mischan Madhupa

Wenn wir aus dem Repository eines Drittanbieters geklont haben, haben wir diesen Fehler “fatal: in unpopulated submodule ‘submodule name'” erhalten.

Diese Fehlerkorrektur für mich mit

git rm --cached <submodule name> -f

Sie können auch entfernen .git Ordner manuell, dann können Sie versuchen, git add

Benutzer-Avatar
ojo

Ich habe den gleichen Fehler erhalten, als ich ein Unterverzeichnis in meinem lokalen Repo hatte, die .git gelöscht hatte, um ein anderes Problem zu lösen, und dann versuchte, meinem Repo eine aktualisierte HTML-Datei hinzuzufügen. Ich ging zu github und lud die Datei über ihre GUI hoch. Jetzt kann ich sehen, dass alles übereinstimmt und der Git-Status keine Probleme zeigt.

1311300cookie-checkfatal: in unbestücktem Submodul

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy