it-swarm.com.de

Wie .gitignore Dateien rekursiv

Ich versuche das folgende Muster in meiner .gitignore - Datei zu vermeiden.

MyPrject/WebApp/Scripts/special/*.js
MyPrject/WebApp/Scripts/special/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*/*/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*/*/*/*/*.js

Wir haben es versucht:

MyPrject/WebApp/Scripts/special/**.js
MyPrject/WebApp/Scripts/special/**/*.js

Dies hat jedoch nicht funktioniert. Das ist Git unter Windows. Gibt es eine präzisere Möglichkeit, dies zu tun, ohne Dinge zu wiederholen?

78
orad

Ab Version 1.8.2 gilt Folgendes:

MyPrject/WebApp/Scripts/special/**/*.js

Sollte funktionieren nach diese Antwort . Es funktioniert auch unter Windows 7 mit Sourcetree 1.6.12.0 und der installierten Version von git (1.8.4-preview20130916).

So können Sie jede Datei und jeden Ordner in einem Verzeichnis rekursiv speichern:

MyPrject/WebApp/Scripts/special/**
85
Sam

Folgende Gitignore-Handbuchseite:

git behandelt das Muster als Shell-Glob, der für den Verbrauch durch fnmatch (3) mit dem Flag FNM_PATHNAME geeignet ist: Platzhalter im Muster stimmen nicht mit einem/im Pfadnamen überein.

Dies bedeutet also eindeutig, dass es keine Möglichkeit gibt, eine bestimmte Anzahl von Verzeichnissen zwischen zwei Zeichenfolgen anzugeben, z. B. zwischen special und js.

Trotzdem können Sie ein .gitignore datei pro verzeichnis, also in deinem fall vielleicht folgenden inhalt

*.js

an der folgenden Stelle

MyPrject/WebApp/Scripts/special/.gitignore

würde ausreichen?

17