Ich möchte alle Gitignore-Regeln im Unterverzeichnis außer den Gitignore-Regeln im Stammverzeichnis ignorieren.
zum Beispiel) Ich habe bereits eine .gitignore
Datei in einer Verzeichnisstruktur /a
.
Und auch .gitignore
Datei in /a/b
. Angenommen, Sie /a
haben a.txt
b.txt
Dateien.
/a/b
hat .config
Datei. .gitignore
definiert .config
in /a/b
.
.config
Datei wird von .gitignore
in ignoriert /a/b
.
Aber ich möchte die .config
Datei wirklich verfolgen , indem ich die Regeln .gitignore
im Unterverzeichnis ignoriere .
Ist es möglich?
Danke im Voraus
/a/b/c
und aktualisieren Sie ,.gitignore
in/a/b
, ist es möglich , in/a/b/c
den Regeln zu ignorieren/a/b
und stattdessen nur verwenden , um Regeln aus/a
."An optional prefix ! which negates the pattern; any matching file excluded by a previous pattern will become included again."
inner .gitignore
Wille verschmilztouter .gitignore
mit höherer Priorität und überschreibt nicht einfach.Nehmen wir an, Sie möchten
node_modules
in Ihr Repository aufnehmen, aber einige Module auf der ganzen Linie haben.gitignore
ihre eigenen. Sie können die Regeln negieren, indem Sie Ihrer Stammdatei Folgendes hinzufügen.gitignore
:quelle
node_modules/mod1
,node_modules/mod2
innerhalb der beiden ein .gitignore sind , die die tiefer ignoriertnode_modules
innerhalb diejenigen (wie innode_modules/mod1/node_modules
. I Hinzufügen und Entfernen von Modulen oft so kann ich nicht sehr gut kennen und manuell Regeln hinzufügen , ignorierennode_modules/mod1/.gitignore
oder manuell hinzufügen die!node_modules/mod1/node_modules
ganze Zeit. Grundsätzlich versuche ich, eine Meteor-App.gitignores
Der Schlüssel zum Problem hierbei ist, dass ein übergeordnetes Verzeichnis ausgeschlossen ist. Von
$ man gitignore
:So habe ich es zum Laufen gebracht. Gegeben:
/.gitignore
::Dann
/b/foo
werden alle Dateien als eingeschlossene Dateien angezeigt/a
und/c
ausgeschlossen. Der Nachteil ist, dass Sie für alle übergeordneten Elemente eines Verzeichnisses, in das Sie Dateien aufnehmen möchten, eine Negation hinzufügen müssen.quelle
!/b/**/*
?Soweit ich weiß, gibt es keine Möglichkeit, dies zu tun. Da der lokale .gitignore den Root-Ginignore überschreibt, wird meine Problemumgehung manuell hinzugefügt.
quelle
.gitignore
hat bei mir nicht funktioniert, da das übergeordnete Element alle Einstellungen für untergeordnete Ordner überschreibt. Wenn Sie das Hinzufügen erzwingen, werdengit add -f myfile.txt
Änderungen unter Umgehung der übergeordneten.gitignore
Einstellungen nachverfolgt.