2016-12-21 8 views
4

Ich habe einen Ordner in Git mit einigen Dateien drin. Dateien sind ein Teil meines Git-Repository. Wenn mein Projekt ausgeführt wird, erscheinen einige Arbeitsverzeichnisse in diesem Ordner. Verzeichnisse können einen beliebigen Namen und eine beliebige Verschachtelungsebene mit mehreren Unterverzeichnissen haben. Ich möchte alle möglichen Unterverzeichnisse ignorieren, die in diesem Ordner erscheinen, aber alle Dateien (nicht Verzeichnisse) behalten, die im Stamm meines Ordners sitzen.Wie alle Unterordner in einem Ordner mit .gitignore zu ignorieren

Ich habe versucht, Muster:

/ 
*/ 
/* 
/*/ 

Keines der oben gewünschten Ergebnis führt. Wie kann es erreicht werden?

Viele Antworten erklären, wie Ordner mit bestimmten Namen ignoriert werden, z. B. Git ignore sub folders. Aber es scheint keine Erklärung dafür zu geben, wie man alle Unterordner mit Platzhaltern ignoriert.

+0

Bitte beachten Sie [Git Unterordner ignorieren] (http://StackOverflow.com/a/40363384/1635042) –

+0

Bitte versuchen Sie [Git Unterordner zu ignorieren] (http://StackOverflow.com/A/40363384/1635042) –

+0

@ Mete Cantimur, pfnuesel, Vielen Dank für die Links. Ich habe alle dort angebotenen Varianten ausprobiert und für mich hat keiner funktioniert. Ich betrachte meine Frage nicht als Duplikat. Personen auf diesen Links möchten Unterordner mit bestimmten Namen ignorieren, während ich alle möglichen Unterordner mit Platzhalter ignorieren möchte. –

Antwort

3

starten:

!folder/ 
folder/* 

Die erste Zeile schließt die oberste Ebene aus ignoriert, und die zweite Zeile ignoriert alle Unterordner.

+1

Würde 'Ordner/* /' nicht dasselbe tun? – pfnuesel

+0

@Tim Biegeleisen, Danke. Es klappt. Also markiere ich es als eine Antwort, obwohl ich selbst diesen Weg kenne. Aber in Bezug auf die Managementlogik ist es nicht perfekt: Angenommen, ich werde diesen Ordner später an einen anderen Ort verschieben. Ich werde .gitignore des übergeordneten Ordners entsprechend bei jeder Repository-Umstrukturierung anpassen müssen. Gibt es eine Möglichkeit, es von .gitignore in dem fraglichen Ordner zu tun? –

+0

@BorisZinchenko Wenn Sie beginnen, Dateien/Ordner zu verschieben, dann wäre '.gitignore' nicht das einzige Problem, dem Sie gegenüberstehen würden. Sie müssen auch damit umgehen, dass die Geschichte teilweise gebrochen wird, sowie potentielle Konflikte für jeden, der solche Änderungen anzieht. –

2

Es ist ziemlich einfach. Erstellen Sie die .gitignore im Ordner mit:

*/* 

D.h. Ignoriere alle Dateien, die sich in irgendeinem Ordner des aktuellen Ordners befinden.

+0

Vielen Dank für den Vorschlag. Ich habe es versucht und es hat nicht funktioniert. Alle Unterordner sind weiterhin sichtbar. –

+0

@BorisZinchenko Ich habe es selbst versucht - funktioniert gut. Ich habe git v2.10.2. Bist du sicher, dass du es richtig machst? – kan

+0

Ich habe unsere Git-Version überprüft. Wir betreiben Git-1.8.0. Aus organisatorischen Gründen können wir es momentan nicht für alle unsere Mitarbeiter aktualisieren. Ich schätze Ihre knappe Antwort und werde sie sicherlich verwenden, wenn wir auf neuere Git aktualisieren. Ich kann es nicht als Antwort markieren, weil ich im Moment kein richtiges Git habe. Es tut uns leid. –

Verwandte Themen