0

Gitignore-Tester

Fügen Sie Ihre .gitignore-Regeln und eine Liste der Dateipfade ein, um genau zu sehen, welche Dateien von welcher genauen Regel und Zeile ignoriert werden und welche Negationsregeln stillschweigend tot sind, weil ein übergeordnetes Verzeichnis bereits ignoriert wird.

Buy Me a Coffee at ko-fi.com
Verarbeitung... 0%
Analysieren von .gitignore-Regeln
Passende Dateipfade
Fertig

Ergebnis

„Warum funktioniert meine .gitignore-Negierung nicht?“ ist eine der häufigsten Git-Fragen, und die ehrliche Antwort ist fast immer dieselbe: Ein „!pattern“, der versucht, eine Datei erneut in ein Verzeichnis einzuschließen, das eine frühere Regel bereits ausschließt, kann niemals funktionieren, da Git nicht in ignorierte Verzeichnisse vordringt, um alles darin erneut zu überprüfen. Dieses Tool implementiert den eigentlichen .gitignore-Matching-Algorithmus von Git neu – keine Annäherung –, um genau diese Situation zusammen mit allen anderen von Git unterstützten Musterregeln zu erfassen und zu erklären.

Fügen Sie Ihre .gitignore-Regeln in ein Feld und eine Liste von Dateipfaden (einen pro Zeile, wie „dist/index.js“, „node_modules/foo/bar.js“ oder „.env“) in das andere Feld ein, und das Tool wertet jeden Pfad genau so aus, wie Git es tun würde: Kommentare und Leerzeilen werden übersprungen, nachfolgende Leerzeichen werden entfernt, sofern nicht mit Escapezeichen versehen, ein führendes „!“ negiert eine Regel, ein führendes „/“ verankert sie darin Anstatt es in beliebiger Tiefe abgleichen zu lassen, beschränkt ein nachgestelltes „/“ es auf Verzeichnisse, und die Zeichenklassen „*“, „?“, „[abc]“ und „**“ (Übereinstimmung über Verzeichnisgrenzen hinweg) funktionieren alle gemäß den dokumentierten globalen Regeln.

Entscheidend ist, dass Pfade Verzeichnis für Verzeichnis vom Stammverzeichnis abwärts überprüft werden, genauso wie Gits eigene Ignorier-Engine funktioniert – und nicht, indem der vollständige Pfad anhand jeder Regel isoliert getestet wird. Das macht es möglich, den Fall der toten Negation korrekt zu erkennen: Wenn „dist/“ in Zeile 3 ignoriert wird und ein späteres „!dist/keep.js“ versucht, eine darin enthaltene Datei zu retten, meldet dieses Tool „dist/keep.js“ als immer noch ignoriert, nennt die Zeile-3-Regel als Grund und markiert die Negation separat als verdeckt, anstatt stillschweigend so zu tun, als ob sie funktioniert hätte.

Die Ergebnistabelle gibt jedem getesteten Pfad eine eigene Zeile mit einem klaren Ja/Nein-Urteil für ignoriert, den genauen Regeltext und die Zeilennummer, die ihn entschieden haben, und – sofern relevant – einen Hinweis in einfacher Sprache, der eine verdeckte Verneinung oder eine geerbte übergeordnete Verzeichnisregel erläutert. Das ist das Detail, das eine verwirrende .gitignore-Datei in eine Datei verwandelt, über die Sie tatsächlich nachdenken können, bevor Sie sie festschreiben.