Sorteer branches op datum van laatste commit

function branches {
for k in `git branch | sed "s/^..//"`; do
echo -e `git log --color -1 --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" "$k"`\t"$k";
done | sort
}

Dit zorgt ervoor dat de datum als eerste kolom in de uitvoer staat, zodat de sort-functie werkt. Het blijkt echter dat dit met moderne versies van Git totaal overbodig is. Je kunt git branch simpelweg configureren om te sorteren op de datum van de laatste commit:

git config branch.sort committerdate

Je kunt dit ook eenmalig uitvoeren met het volgende commando:

git branch --sort committerdate

Andere sorteermogelijkheden

Waar kun je nog meer op sorteren? De handleiding stelt: "De ondersteunde sleutels zijn dezelfde als die in git-for-each-ref(1)." De manpage voor git-for-each-ref somt een groot aantal velden op, waaronder enkele die voor mij als sorteersleutels minder logisch zijn. De volgende opties zijn echter interessant:

  • authordate, committerdate, creatordate, taggerdate
  • contents:size: De grootte in bytes van het commit- of tag-bericht.
  • push: De naam van een lokale ref die de @{push}-locatie vertegenwoordigt voor de getoonde ref.
  • refname: De naam van de ref (het deel na $GIT_DIR/) (dit is de standaardinstelling).
  • upstream: De naam van een lokale ref die als "upstream" kan worden beschouwd ten opzichte van de getoonde ref.