#!/bin/sh
git for-each-ref --sort=-committerdate --format '%(objectname:short) %(objecttype) %(refname) | %(committerdate:relative) %(if)%(authorname)%(then)(by %(authorname) %(authoremail))%(end)' "$@" | column -t -s\|
Documentation: https://git-scm.com/docs/git-for-each-ref
Fields for the --format
option
from https://github.com/git/git/blob/4ede3d42dfb57f9a41ac96a1f216c62eb7566cc2/ref-filter.c#L429
{ "refname", SOURCE_NONE, FIELD_STR, refname_atom_parser },
{ "objecttype", SOURCE_OTHER, FIELD_STR, objecttype_atom_parser },
{ "objectsize", SOURCE_OTHER, FIELD_ULONG, objectsize_atom_parser },
{ "objectname", SOURCE_OTHER, FIELD_STR, objectname_atom_parser },
{ "tree", SOURCE_OBJ },
{ "parent", SOURCE_OBJ },
{ "numparent", SOURCE_OBJ, FIELD_ULONG },
{ "object", SOURCE_OBJ },
{ "type", SOURCE_OBJ },
{ "tag", SOURCE_OBJ },
{ "author", SOURCE_OBJ },
{ "authorname", SOURCE_OBJ },
{ "authoremail", SOURCE_OBJ },
{ "authordate", SOURCE_OBJ, FIELD_TIME },
{ "committer", SOURCE_OBJ },
{ "committername", SOURCE_OBJ },
{ "committeremail", SOURCE_OBJ },
{ "committerdate", SOURCE_OBJ, FIELD_TIME },
{ "tagger", SOURCE_OBJ },
{ "taggername", SOURCE_OBJ },
{ "taggeremail", SOURCE_OBJ },
{ "taggerdate", SOURCE_OBJ, FIELD_TIME },
{ "creator", SOURCE_OBJ },
{ "creatordate", SOURCE_OBJ, FIELD_TIME },
{ "subject", SOURCE_OBJ, FIELD_STR, subject_atom_parser },
{ "body", SOURCE_OBJ, FIELD_STR, body_atom_parser },
{ "trailers", SOURCE_OBJ, FIELD_STR, trailers_atom_parser },
{ "contents", SOURCE_OBJ, FIELD_STR, contents_atom_parser },
{ "upstream", SOURCE_NONE, FIELD_STR, remote_ref_atom_parser },
{ "push", SOURCE_NONE, FIELD_STR, remote_ref_atom_parser },
{ "symref", SOURCE_NONE, FIELD_STR, refname_atom_parser },
{ "flag", SOURCE_NONE },
{ "HEAD", SOURCE_NONE, FIELD_STR, head_atom_parser },
{ "color", SOURCE_NONE, FIELD_STR, color_atom_parser },
{ "align", SOURCE_NONE, FIELD_STR, align_atom_parser },
{ "end", SOURCE_NONE },
{ "if", SOURCE_NONE, FIELD_STR, if_atom_parser },
{ "then", SOURCE_NONE },
{ "else", SOURCE_NONE },