2010-05-25 12 views
8

Ich las http://www.kernel.org/pub/software/scm/git/docs/v1.7.10/gitignore.html und die 6 Punkte, die verwendet wurden, um die Ignoriermuster zu erklären, scheinen eine benutzerdefinierte Variante einer Glob-Suchsyntax zu beschreiben. Ich bin vertrauter mit Mercurial, die explizit über Glob oder Regex-Muster zu ignorieren, keine Fragen gestellt.Confusing .gitignore Syntax

  • Gibt es ähnliche Funktionen in Git?
  • Kann mir jemand auf eine ausführlichere Referenz verweisen als die Git man Seite?

Best,
t

+0

Alle Globbing ist auf einer bestimmten Ebene benutzerdefinierte - es ist Shell-abhängig. Vermutlich liefert Mercurial auch seine eigene Version von Globbing; Es würde nicht viel Sinn machen, dass sich das Verhalten in Abhängigkeit von der Shell des Benutzers ändert. – Cascabel

+1

Danke, ich habe deine andere Antwort auf http://stackoverflow.com/questions/2899875/git-add-not-working-with-png-files/2900049#2900049 gelesen, die dazu beigetragen hat, die Dinge ein wenig zu klären. Der obige Kommentar scheint jedoch Ihrer und VonC-Beobachtung zu widersprechen, dass Git zu dem zurückkehrt, was die Shell-Glob-Syntax des Benutzers zulässt. Beim erneuten Lesen nach Ihren Kommentaren erwähnt die Manpage tatsächlich die Ausschlussabhängigkeit von fnmatch() und der Shell des Benutzers (die letzten beiden Punkte) – tmslnz

+0

Ich glaube nicht, dass es von der Shell des Benutzers abhängt. Die Dokumentation ist ein wenig verwirrend, du hast recht, aber es benutzt in jedem Fall fnmatch. Die Dokumentation verwendet nur den Ausdruck "shell glob" als einen besser lesbaren Ersatz für fnmatch. Der Code ruft niemals die Shell des Benutzers auf. – Cascabel

Antwort

1

Nicht genau. Es kann eine bash-ähnliche Syntax verwendet werden, wenn Sie so etwas wie dies angeben:

*tmp_*~

das ist die gleiche wie die regExp: .*tmp_.*~

hoffe, dies wird Ihnen helfen!

+1

Nicht genau * was *?Denken Sie daran: Ihre Antwort wird nicht unbedingt in der Reihenfolge angezeigt, in der sie beim ersten Posten auftrat. Eine Antwort auf eine vorherige Antwort oder einen Kommentar ist daher keine gute Idee. Darüber hinaus könnte sogar die Frage überarbeitet werden und andere Antworten könnten gelöscht werden. – iconoclast

+0

Sie haben Recht, danke! Ich habe diese Tatsache vergessen ... –

3

Es gibt keine integrierte Möglichkeit, durch regex auszuschließen. Wenn es welche gäbe, würden Sie es auf der Manpage sehen.

+0

Wie ich in Ihrer vorherigen Antwort http://stackoverflow.com/questions/2899875/git-add-not-working-with-png-files/2900049#2900049 (und wie Chris Johnsen Details in der gleichen Frage) erwähnt, alle Musterbasierte Dateiauswahl wird an die 'fnmatch()' Funktion delegiert, oder? – VonC

+0

Nicht wahr jefromi, '! Pattern' negiert eine Übereinstimmung – AD7six

+0

@ AD7six: Ja, und ** gitignore-Muster sind keine Regexes **. – Cascabel