2017-05-15 4 views
1

Ich habe einen Ordner, der zwei Arten von Dateien enthält, die benötigt werden, um ein Softwareprogramm zu kompilieren. Wenn das Software-Programm kompiliert wird, es erzeugt automatisch Dateien, die ich, nicht verfolgen will, aber eine dieser Dateien ist von der gleichen Erweiterung der das Programm benötigten Dateien zu kompilieren, ich habe:git ignoriere alle Dateien außer der Erweiterung, ignoriere das Muster der Erweiterung

# ignore everything (to ignore all auto-generated files without listing their extensions) 
* 

# but do not ignore (required to compile) 
!*.abc 
!*.xyz 

# but ignore if file name matches pattern (auto-generated file after compilation) 
*generic.abc 

Gibt es ein Möglichkeit, alles außer zwei angegebenen Dateierweiterungen zu ignorieren, aber die angegebene Dateierweiterung zu ignorieren, wenn ihr eine bestimmte Namenskonvention vorausgeht? Hinweis: Vor der Datei "generic.abc" gibt es einen eindeutigen Text, weshalb ich die Konvention "generic.abc" ignorieren möchte. Danke im Voraus!

+0

Wenn möglich, würde ich empfehlen, Ihre Ausschlussregeln expliziter zu machen. Aber wenn du wirklich diesen Ansatz haben willst, alles zu ignorieren, außer was du während-listest, dann scheinen die Regeln, die du angegeben hast, zu funktionieren (zumindest in schnellen Tests, die ich zusammen geworfen habe). Ich nehme an, Sie haben ein Problem gefunden, wenn Sie versuchen, diese Regeln zu verwenden; Welches unerwartete Verhalten hast du beobachtet? –

+0

@MarkAdelsberger Es scheint, die generic.abc Datei zu verfolgen ... es wurde zuerst verfolgt, bevor ich den obigen Code der .gitignore Datei hinzugefügt habe, aber ich habe es mit 'git rm --cached generic.abc' entfernt, aber es erscheint immer noch wenn ich 'git status 'tippe – Prevost

+0

Nachdem du' git rm --cached generic.abc' hast, erscheint es als 'deleted' (zeigt nur an, dass es im vorherigen Commit war) oder als untracked Datei? –

Antwort

0

Ja, es funktioniert genauso wie Sie geschrieben haben.

1

Ich hatte ein * -Symbol nach dem Dateinamen und der Erweiterung weggelassen. Ich fand diesen Link hilfreich here.

Dies ist die überarbeitete Datei .gitignore und dies scheint zu funktionieren.

# ignore everything (to ignore all auto-generated files without listing their extensions) 
* 

# but do not ignore (required to compile) 
!*.abc 
!*.xyz 

# but ignore if file name matches pattern (auto-generated file after compilation) -> HERE IS THE ADDITIONAL * after .abc! 
*generic.abc* 
Verwandte Themen