Veit Schiele Communications

Veit Schiele Communications

Commit-Historie filtern

Selten ist die gesamte git-Historie interessant. Meist wird nur nach bestimmten Commits gesucht. Dabei kann nach verschiedenen Kriterien gefiltert werden.
erstellt von Veit Schielezuletzt verändert: 21.09.2015 21:08 © Veit Schiele 2014–2015

… nach Anzahl

Die Anzahl der Commits, die angezeigt werden soll kann einfach angegeben werden mit -<n>, z.B. für die letzten 5 Commits:

$ git log -5

… nach Datum

Wenn Sie nach einen Commit suchen, der in einem bestimmten Zeitraum gemacht wurde, können hierfür die Optionen --after oder --before verwendet werden. Dabei werden eine Vielzahl von Datumsformaten erlaubt, z.B.:

$ git log --after="2015-09-13"

oder:

$ git log --after="2015-09-13" --before="2015-09-20"

Sogar relative Angaben wie 1 week ago oder yesterday sind zulässig, also z.B.:

$ get log --after="yesterday"

… nach Autor

In git lässt sich einfach nach dem Autor eines Commits suchen mit der Option --author. Dabei ist der Wert ein regulärer Ausdruck und gibt alle Commits aus, die zu diesem Ausdruck passen, also z.B.:

$ git log --author = "veit"

Sie können auch nach mehreren Autoren gleichzeitig suchen, also z.B.:

$ git log --author="veit\|vsc"

… nach Nachricht

Um nach Commit-Messages zu filtern, kann die --grep-Option verwendet werden. Soll z.B. nach Commit-Messages gesucht werden, die sich auf ein bestimmtes Ticket in der Aufgabenverwaltung beziehen, so kann z.B. folgendermaßen gesucht werden:

$ git log --grep = "GDD-224:"

Dabei wird mit -i nicht unterschieden zwischen Groß- und Kleinschreibung.

… nach Datei

Sollen nur die Commits angezeigt werden, die sich auf bestimmte Dateien beziehen, so muss lediglich der jeweilige Dateipfad angegeben werden, also z.B.:

$ git log - foo.py bar.py

… nach Inhalt

Es ist auch möglich, in den Commits nach Änderungen in bestimmten Zeilen des Quellcodes zu suchen, und zwar mit der -S-Option, z.B.:

$ git log -S"foo"

Wollen sie mit einem regulären Ausdruck suchen, verwenden Sie die -G-Option, z.B.:

$ git log -G"ba*"

… nach Unterschieden zwischen Branches

$ git log master..feature