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.
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
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.
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
- Alles entfernen
.git
Ordner innerhalb des Unterverzeichnisses, das den Fehler verursacht
cd
zum Hauptverzeichnis
git rm --cached sub_directory_name -f
git add --all
um das Unterverzeichnis und den Inhalt rekursiv hinzuzufügen
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
- Erstellen Sie eine Kopie des Verzeichnisses „submodule“ irgendwo außerhalb des Repositorys (z. B. auf Ihrem Desktop).
- Löschen Sie das Submodulverzeichnis aus Ihrem Repo
- Committen Sie das Repository
- Gehen Sie in die Kopie, die Sie von Ihrem Submodulverzeichnis gemacht haben, löschen Sie
.gitignore
Datei und .git
Verzeichnis
- 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!
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
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.