2015-10-05 4 views
6

Ich möchte nur Dateien mit der Erweiterung .fmb, .fmx und festschreiben, aber ich kann .gitignore Datei nicht konfigurieren, um dies zu erreichen.gitignore - Ignoriere alle Dateitypen mit Ausnahme der angegebenen

Ich habe mit folgendem versucht:

!.fmb 
!.fmx 
!.pll 

und auch mit:

!*.fmb 
!*.fmx 
!*.pll 

aber es funktioniert nicht.

+1

Siehe [Antwort] (http://stackoverflow.com/questions/1274057/making-git-forget-about-a-file-that-was-tracked-but-is-now-in-gitignore) zu stellen Sie sicher, dass Sie die un-tracked Dateien aus dem Cache entfernen – Ajay

+0

Ich habe noch keine Commit gemacht, aber ich werde für die Zukunft in Betracht ziehen, danke. – Julen

Antwort

5

Versuchen Sie dies in Ihrem gitignore datei

* !*.fmb !*.fmx !*.pll

Sie wollen zunächst alles ignorieren und dann Whitelist-Dateien.

+0

Vielen Dank, es funktioniert wie ein Zauber. – Julen

4

Die einzige Regel zu erinnern, wenn mit gitignore Regeln zu tun ist:

It is not possible to re-include a file if a parent directory of that file is excluded (*)
(*: es sei denn, bestimmte Bedingungen in git 2.?+ erfüllt sind, siehe unten)

Seit ' * "würde auch Ordner ignorieren, würde jede Dateiausschlussregel nicht funktionieren.

Versuchen:

* 
!*/ 
!*.fmb 
!*.fmx 
!*.pll 

, dass die Ordner richtig un-ignorieren (!*/), und lassen Sie die nächste Ausnahmeregel auf Dateien arbeiten.


Beachten Sie, dass mit git 2.9.x/2.10 (Mitte 2016?), Könnte es möglich sein, wieder schließt eine Datei, wenn ein übergeordnetes Verzeichnis der Datei if there is no wildcard in the path re-included ausgeschlossen.

Nguyễn Thái Ngọc Duy (pclouds) versucht, um diese Funktion hinzuzufügen:

Da jedoch einer der Bedingung Aufnahme neu war:

Das Verzeichnis Teil in der Wieder umfassen Regeln wörtliche sein müssen (dh keine Wildcards)

Das wäre habe hier sowieso nicht gearbeitet.

+0

Ihre Lösung funktioniert auch, danke. – Julen

+1

@nathan die Lösung, die Sie ausgewählt haben, ist falsch und wird nicht funktionieren, wenn diese Dateien in Unterordnern sind. Bitte führe andere Git-Benutzer nicht in die Irre. – VonC

+1

@nathan Ich stimme zu, das ist die richtige Antwort, nicht die andere. Bitte Akeptiere es. –

Verwandte Themen