Was bedeutet ein graues Symbol in Remote-GitHub?


83

Kann mir bitte jemand sagen, warum ich das graue Symbol habe, wenn ich meine Dateien auf Github schiebe? Neben dem App-Verzeichnis sollten sich Modelle, Ansichten und Controller befinden, aber im Remote-GitHub kann ich nicht darauf klicken.

Geben Sie hier die Bildbeschreibung ein

Antworten:


30

Es sieht so aus, als hätten Sie ein Submodul erstellt, das auf einen nicht erreichbaren Remote-Standort verweist.

Siehe diese Antwort . Dieses grüne Symbol zeigt auf das Untermodul. Ich gehe davon aus, dass es in Ihrem Fall ausgegraut ist, weil das Submodul falsch konfiguriert wurde.

Da dies .gitmodulesnicht vorhanden ist, muss es gelöscht worden sein, sodass ein Untermodul ohne Remote-Informationen verbleibt.

Wenn Sie in appund eingeben, sehen git remote -vSie, wohin dieses Modul ebenfalls zeigt. Dieser Ort ist derzeit nicht erreichbar.

In einem ähnlichen Szenario habe ich ein Submodul hinzugefügt und gelöscht .gitmodules. Das Ergebnis auf GitHub sieht folgendermaßen aus:

fehlendes Untermodul


Als ich versuchte, das Git-Submodul-Update --init auszuführen, gab es mir keine Submodul-Zuordnung zurück, die in Gitmodules für den Pfad 'app' gefunden wurde
BC2

Ich habe git ls-tree --full-tree -r HEAD ausprobiert und es gibt mir 100644 blob 6628083525c40f2abab01a69c4599d38380b18a5 Rakefile 160000 commit 60b600031853f5f4bbc0a2885caf5085bbf873fc app
BC2

Alle Verzeichnisse mit dem Wort blob außer app ... n Es gibt keine weiteren Verzeichnisdateien in der App ... während es in meinem eigentlichen Projekt innerhalb der App noch einige Verzeichnisse wie Model, View, Controller usw. gibt
BC2

Was kommt cat .gitmoduleszurück? Veröffentlichen Sie keine aktuellen URLs
Boj

Katze: .gitmodules: Keine solche Datei oder Verzeichnis
BC2


23

Git hält es für ein Submodul, da es ein .git-Verzeichnis enthält. Reparieren...

Das Verzeichnis wurde in das fehlerhafte Verzeichnis geändert:

cd <offending git submodule>

Entfernen Sie das darin enthaltene .git-Verzeichnis:

rm -rf .git

Aktualisieren Sie den Git-Cache:

git rm --cached <offending git submodule>

Wechseln Sie in das übergeordnete Verzeichnis:

cd ..

Fügen Sie das Verzeichnis zu git hinzu:

git add .
git commit -m "Changed submodule to directory"
git push --all

Dies ersparte mir Kopfschmerzen
Elroy Jetson

Gute Antwort. Das Befolgen dieser Schritte ersparte mir viel Verwirrung!
Gallen

Tolle Antwort. Das hat mich vor Verwirrung bewahrt!
Ayubur Rahaman

Dies ist bei weitem die richtigste Antwort, nachdem Sie einige alternative Antworten ausprobiert haben. Vielen Dank
Platos-Child

Sollte am besten bewertet sein. Nur eine Sache, gehen Sie zum übergeordneten Verzeichnis und machen Sie dann git rm --cached <>
Tejas Sharma

20

Es sieht so aus, als hätten Sie git im Ordner initialisiert. Löschen Sie die Git-Datei (rm -rf) aus dem Unterordner, erstellen Sie ein neues Repo und initialisieren Sie Git erneut.


3
Sehr prägnante Antwort! Ich bin einfach reingegangen, habe versteckte Dateien aktiviert, den versteckten Git-Ordner in meinem Projekt gelöscht und erneut hochgeladen - das graue Ordnersymbol ist jetzt verschwunden und auf Github ist wieder alles in Ordnung. Vielen Dank für die prägnante und unkomplizierte Antwort.
Twknab

1

Sie haben git bereits im App-Verzeichnis initialisiert und es kann die Fernbedienung nicht finden. Löschen Sie die Git-Datei in der App. .

[app(master)]$ sudo rm -r .git

Oder zeigen Sie die versteckten Dateien im Ordner und machen Sie es manuell. Anschließend die Änderungen des übergeordneten Ordners erneut festschreiben und erneut übertragen


1
<3 Antworten zum Kopieren und Einfügen
Simon Somlai

1

Die einfachste Methode, die ich gefunden habe, war einfach, den Ordner aus dem lokalen zu entfernen und das Remote-Repo zu aktualisieren. Navigieren Sie zu Ihrem lokalen Verzeichnis und schneiden Sie den Ordner mit dem falsch eingerichteten .git-Unterordner an einen anderen Speicherort (außerhalb des lokalen Repos, z. B. Desktop), damit Sie das Problem beheben und später wieder kopieren können. Führen Sie dann Folgendes aus:

git submodule update

git add --all

git commit --all

git push

Dadurch sollte der Ordner entfernt werden, der auf dem Remote-Repo ausgegraut ist. Kopieren Sie dann den Ordner erneut in Ihre lokalen Dateien und führen Sie den Push add --all commit --all git wie oben aus. Achten Sie dabei zunächst darauf, den falsch eingerichteten .git-Ordner vorher aus dem Unterordner zu löschen, um dasselbe Problem zu vermeiden nochmal; Um dies auf Linux-Systemen zu finden, verwenden Sie cntrl-h aus dem Ordner, um versteckte Dateien in Ihren Ordnern anzuzeigen. In einem Unterordner, der das Problem verursacht, wird ein .git-Ordner angezeigt. Löschen Sie diesen Ordner und dieser sollte behoben werden


0

Es enthält bereits ein .git und erscheint daher grau. dh es hat git auch darin initialisiert.


In meinem Fall war dies tatsächlich das Problem, da ich einen .git-Ordner im Ordner hatte und dann automatisch ein Submodul für den Ordner erstellt wird. Ich bin nicht sicher, warum diese Antwort markiert ist?
Leoncc

0

In meinem Fall hatte ich bei der Bereitstellung in Heroku ein Git-Repository im Stammordner (das mit manage.py) initialisiert, bevor ich ein Git-Repository im übergeordneten Ordner des Projekts eingerichtet habe.

Als ich dann ein neues Repo im übergeordneten Ordner des Projekts erstellte, war der Stammordner, der die Modellansichten und Controller verwaltet, ausgegraut. Folgendes hat bei mir funktioniert:

  1. Repo des übergeordneten Ordners löschen
  2. Erstellen Sie ein neues Repo, ohne "Dieses Repository mit einer README-Datei initialisieren" zu aktivieren, da das vorhandene Repository importiert wird.
  3. Gehen Sie in Ihrem Stammordner mit der Datei "manage.py" wie folgt vor:

    git remote add origin "github repo link"

    Git Push -u Origin Master

  4. Aktualisieren Sie Ihr Github-Repo und alle Ihre Verzeichnisse sollten vorhanden sein
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.