Nach der Lektüre einige Fragen über .gitignore
ich niemanden gefunden haben, verwenden, die meine Frage beantworten könnte:ignorieren bestimmte Dateien in allen Ordnern eine einzelne Datei .gitignore
Was muss ich hinzufügen alle Dateien mit .gitignore zu ignorieren ein bestimmtes Ende, sagen *.txt
in allen Ordnern.
Ich hätte lieber nur eine .gitignore
Datei auf höchster Ebene.
Ich versuchte mehrere Dinge, aber keine funktionierte. Diese
ist, was ich getestet (.gitignore
wurde vor dem Repository hinzugefügt wurde keine andere Datei hinzugefügt):
$ ls
abc.txt content
$ ls content/
abc.txt def.other def.txt
$ echo "" > .gitignore
$ git status --ignored --untracked-files=all
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: .gitignore
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# abc.txt
# content/abc.txt
# content/def.other
# content/def.txt
no changes added to commit (use "git add" and/or "git commit -a")
Dies wird als erwartet: alle Dateien angezeigt, da .gitignore leer.
$ echo "*.txt" > .gitignore
$ git status --ignored --untracked-files=all
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: .gitignore
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# content/def.other
# Ignored files:
# (use "git add -f <file>..." to include in what will be committed)
#
# abc.txt
no changes added to commit (use "git add" and/or "git commit -a")
Warum nicht die Dateien Inhalt/abc.txt und Inhalt/def.txt in der Liste auftauchen?
Ich dachte, sie würden auch hier auftauchen.
$ echo "" > .gitignore
$ git clean -n
Would remove abc.txt
Would not remove content/
$ cd content
$ git clean -n -x
Would remove def.other
$ git clean -n -x
Would remove abc.txt
Would remove def.other
Would remove def.txt
Wenn die Dateien Inhalt/abc.txt und Inhalt/def.txt von clean -n -x
gezeigt werden, aber nicht durch clean -n
, ich glaube, sie werden ignoriert. Aber warum tauchen sie dann nicht in auf?
Es scheint, dass der Grund, weil 'git status --ignored --untracked-files = all' wird diese Dateien in Ihrem Test hat etwas nicht zeigen, mit dem zu tun,„Verzeichnis nicht verfolgt werden“(man kann tatsächlich Verfolge keine Verzeichnisse, nur Dateien, aber wenn ich eine Datei innerhalb des Verzeichnisses aufspürte, in dem sie auftauchten – KurzedMetal
Das hat funktioniert. Seltsam, dass 'git clean -fx' nur die Dateien im Inhalt löscht, nachdem der Ordner eine verfolgte Datei enthielt. Ansonsten musste ich den Befehl im Ordner selbst aufrufen, um die Dateien zu entfernen! – Onur