Git commiter ab einem commit / branch ermitteln

GIT commiter für ein release ermitteln (ab bestimmten commit)

In diesem blog post möchte ich beschreibe wie man eine liste der commiter für ein bestimmtes git repository ermitteln kann.

 

Vorraussetzungen:

  • Es gibt für jedes release einen release branch, was gängige Praxis ist. Dieser wird gebrancht vom master, zum Zeitpunkt des releases.
  • Am neusten Stand für das neuste Release wir im master Branch gearbeitet.

Beispiel:

Vor einiger Zeit wurde Version 6.2.0 released und es gibt einen Releasebranch 6.2.x. Im master branch wird da der Version 6.3.0 gearbeitet.


Wenn nun Version 6.3.0 released werden soll bleibt die Frage zu beantworten, wann wurde 6.2.0 released und was ist seit dem im master branch passiert.

Den ersten commit in einem GIT Branch finden

Auf stackoverflow gibt es dazu einen intressanten post der die verschiedenen Möglichkeiten beschreibt, wie man den ersten commit eines branches ermittelt.

 

Ich habe beschlossen mit dem git alias zu arbeiten:

git config --global alias.oldest-ancestor '!zsh -c '\''diff -u <(git rev-list --first-parent "${1:-master}") <(git rev-list --first-parent "${2:-HEAD}") | sed -ne "s/^ //p" | head -1'\'' -‚
git checkout release-6.2.x
git git oldest-ancestor
f6d28cf6dbb161c53336c89ae82848bf32d09348

Nun haben wir den ersten commit im release branch ermittelt und müssen im master branch alle commits seit diesem commit finden.

Alle Autoren ab einem bestimmten commit finden

Nun können wir alle commits ab dem branch point finden und nach dem Autor greppen, und sortieren:

git checkout master
git --no-pager log f6d28cf6dbb161c53336c89ae82848bf32d09348..HEAD | grep „Author“ | sort | uniq

Navigation