Ich habe ähnliche Fragen gesehen ( 1 , 2 und 3 ), aber ich bekomme keine richtige Lösung von ihnen.
Ich muss alle Dateien unter einem bestimmten Ordner außer einem bestimmten Dateityp ignorieren. Der Ordner ist ein Unterverzeichnis für den Stammpfad. Lassen Sie mich den Ordner benennen Resources
. Da ich die Dinge nicht komplizieren möchte, möchte ich Dateien unter allen Ordnern ignorieren, die Resources
überall benannt sind.
Dies ist die häufigste Lösung (bei allen doppelten Fragen).
# Ignore everything
*
# Don't ignore directories, so we can recurse into them
!*/
# Don't ignore .gitignore
!.gitignore
# Now exclude our type
!*.foo
Das Problem bei dieser Lösung besteht darin, dass neu hinzugefügte Dateien nicht mehr verfolgt werden (da *
alle Dateien ignoriert werden). Ich möchte nicht jeden Dateityp ausschließen. Ich möchte ein normales Verhalten, bei dem eine neue Datei angezeigt wird git status
.
Ich habe hier endlich eine Lösung gefunden . Die Lösung besteht darin, eine weitere .gitignore
Datei im Resources
Ordner hinzuzufügen . Das funktioniert richtig.
Kann ich dasselbe mit einer Ignorierdatei erreichen? Ich finde es etwas klobig, viele Ignorierdateien in verschiedenen Verzeichnissen zu haben.
Das versuche ich zu erreichen:
# Ignore everything under Resources folder, not elsewhere
Resources
# Don't ignore directories, so we can recurse into them
!*Resources/
# Now exclude our type
!*.foo
Dies ergibt jedoch die entgegengesetzte Ausgabe. Es ignoriert *.foo
Typen und verfolgt andere Dateien.
DirectoryName1/** DirectoryName1/**/*
für jedes von ihnen. Firs entfernen Verzeichnisse, aber Sie benötigen das zweite, um alle Dateitypen zu entfernen.