wake-up-neo.com

Git alle Unterverzeichnisse hinzufügen

Ich habe Probleme beim Hinzufügen eines Ordners und aller Unterverzeichnisse zu meinem Git-Repository. Mir wurde klar, dass dies eine sehr beliebte Frage ist, nachdem ich ein wenig gegoogelt hatte. Ich habe jeden Vorschlag ohne Erfolg ausprobiert, insbesondere den Vorschlag von der man-Seite zu git-add . Ich habe sogar git add -A ohne Erfolg versucht. Der Einfachheit halber habe ich mein Git-Repository als Dir1 initialisiert. Dann habe ich die folgende Verzeichnisstruktur von Dateien.

Dir1/file1-1.txt
Dir1/file1-2.txt
Dir1/Dir2/file2-1.txt
Dir1/Dir2/Dir3/file3-1.txt

Meine echten Dateien haben Unterverzeichnisse, die 5-6 Ebenen umfassen. Gibt es einen Befehl git, um alle Dateien in jedem Unterverzeichnis zu meinem Repository hinzuzufügen? Im Moment, wenn ich den Vorschlag aus der Manpage git add Dir1/\* mache, kann ich Dir2 in meinem Repo sehen, aber er wird als grüner Ordner angezeigt und ich kann ihn nicht öffnen dass alle Dateien/Ordner in Dir2 nicht hinzugefügt wurden. Jede Hilfe wäre sehr dankbar. Ich bin ein neuer git-Benutzer (weniger als eine Woche mit dem Gebrauch), also halten Sie Ihre Anweisungen auf dem Niveau eines Anfängers.

64
Josh Bradley

Tun,

git add .

während in der Wurzel des Repository. Es wird alles hinzufügen. Wenn Sie git add * tun, werden nur die Dateien hinzugefügt, auf die * zeigt. Der einzelne Punkt bezieht sich auf das Verzeichnis.

Wenn Ihr Verzeichnis oder Ihre Datei nach dem obigen Befehl nicht zu git index/repo hinzugefügt wurde, prüfen Sie, ob es von git in .gitignore als ignoriert markiert ist. 

87
Kalle Pokki

Sie können auch auf Probleme stoßen, wenn ein Unterverzeichnis selbst ein git-Repository ist - dh .hat ein .git-Verzeichnis - mit ls -a prüfen.

Zum Entfernen gehen Sie in das Unterverzeichnis und rm .git -rf.

8
PaulB

Einfache Lösung:

git rm --cached directory
git add directory
6
ngCourse

Kämpfte auch, aber ich habe es richtig getippt

git add -f ./JS/*

jS war mein Ordnername, der Unterordner und Dateien enthält 

5
Ian Wright

Ich kann nicht mit Sicherheit sagen, ob dies der Fall ist, aber was für mich ein Problem zu sein schien, bestand darin, .gitignore-Dateien in einigen der Unterverzeichnisse zu haben. Auch hier kann ich nicht garantieren, aber nachdem alles gelöscht wurde, funktionierte alles.

1
Adam Ruhl

Am wahrscheinlichsten sind .gitignore-Dateien s beim Abspielen. Beachten Sie, dass .gitignore-Dateien nicht nur auf der Stammebene des Repos, sondern auch auf jeder untergeordneten Ebene angezeigt werden können. Sie könnten dies von der Wurzelebene aus versuchen, um sie zu finden:

finden . -name ".gitignore"

Überprüfen Sie dann die Ergebnisse, um herauszufinden, welche möglicherweise dazu führen, dass Ihre Subdirs nicht hinzugefügt werden.

Möglicherweise sind auch Submodule beteiligt. Überprüfen Sie die fehlerhaften Verzeichnisse auf ".gitmodules" -Dateien.

0
samato

Ich habe dieses Problem zuvor gesehen, als der (Unter-) Ordner, den ich hinzufügen wollte, seinen Namen mit "_Something_" begann.

Ich entfernte die Unterstriche und es funktionierte. Überprüfen Sie, ob Ihr Ordner Zeichen enthält, die Probleme verursachen können.

0
Ash Kumar