2017-02-26 4 views
0

Ich habe in Github ein Repository erstellt und versucht, dort Python-Code hochzuladen. Einer der Unterordner wird leer hochgeladen, was ich nicht begründe. Ich habe ein neues Repository mit einem anderen Namen erstellt, das immer noch dasselbe Problem aufweist. Später entferne ich die origin mit git remote rm origin und sehe keinen Effekt dafür. Hier ist das Bild für den Upload,Warum lädt der GIT den leeren Ordner hoch, wenn er voller Code ist?

enter image description here

Der Ordnername mit einigem Code ist ML Examples und es hochgeladen wie leer. Ich wurde versucht, den Namen zu ML früher zu ändern und später zu löschen. Es wird jedoch weiterhin im Upload angezeigt.

Was ist das Problem hier und wie man es löst?

Antwort

2

Was Sie sehen (graue Ordner) ist ein gitlink, ein special entry in the index von Ihr Haupt-GitHub Repo, der die verschachtelte Repo-Wurzel SHA1 aufzeichnet.

Wenn Sie auch seinen Inhalt referenzieren möchten, sollten Sie diese verschachtelten Repos als submodules hinzufügen.

Oder Sie sollten vermeiden, dass diese Unterverzeichnisse einen Ordner .git/ in ihnen haben, da dies würde sie verschachtelten Git Repo machen.

+0

Eine Frage, warum wird der ganze Unterordner hochgeladen, aber die ML Beispiele? Ich brauche dazu eine gute Erklärung. – Arefe

+0

Da MK Example einen .git-Ordner enthält, wird es zu einem verschachtelten Git-Repo. In diesem Fall zeichnet Ihr Hauptrepo nur einen Gitlink auf, den Sie auf GitHub sehen. – VonC

+0

Wie löst man dieses Problem? – Arefe

0

AFAIU git kümmern sich nicht wirklich um Verzeichnisse, nur über Dateien in ihnen.

Das heißt, müssen Sie git add somedir/somefile

(aber ich bin ein Neuling auf git und könnte falsch sein)

+0

Sie haben Recht: Git zeichnet keine leeren Verzeichnisse auf, da es überhaupt keine Verzeichnisse aufzeichnet, außer implizit (dh eine Datei mit dem Namen 'a/b/c' bedeutet, dass die Verzeichnisse' a' und 'a/b 'muss existieren). In diesem Fall hat VonC jedoch recht (wie immer :-): Was der Fragesteller erstellt hat, ist ein "gitlink" -Eintrag, der im Wesentlichen eine Datei ist, die eine Commit-Hash-ID für ein Submodul enthält. GitHub zeigt diese speziell an, da Git das Submodul auscheckt (vorausgesetzt, Sie haben den * Rest * der Anforderungen für Submodule eingerichtet). – torek

Verwandte Themen