[alias] l = log --color --graph --format=format:'%C(blue)%h%C(reset) - %C(white)(%ar)%C(reset) %s %C(red)%d%C(reset) %C(bold blue)— %an%C(reset)' --abbrev-commit lg = log --color --graph -n 15 --format=format:'%C(blue)%h%C(reset) - %C(white)(%ar)%C(reset) %s %C(red)%d%C(reset) %C(bold blue)— %an%C(reset)' --abbrev-commit lf = log --color --graph --name-status --format=format:'%C(blue)%h%C(reset) - %C(white)(%ar)%C(reset) %s %C(red)%d%C(reset) %C(bold blue)— %an%C(reset)' --abbrev-commit ll = log --color --graph --all --format=format:'%C(blue)%h%C(reset) - %C(white)(%ar)%C(reset) %s %C(red)%d%C(reset) %C(bold blue)— %an%C(reset)' --abbrev-commit s = status -s ss = status a = add ai = add -i p = push pu = pull f = fetch fa = fetch --all c = commit dt = difftool dtg = difftool -g b = branch bv = branch -v bva = branch -va co = checkout cb = checkout -b d = diff --stat dd = diff m = merge --no-ff r = remote rv = remote -v rb = rebase rbi = rebase -i fap = fetch --all -p -t stash-all = stash save --include-untracked # List every branch, local and remote, in order of most recent to oldest commit, showing the branch's last commit and some last commit meta-data br = for-each-ref --sort=-committerdate refs/heads/ refs/remotes/origin/ --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(color:red)%(objectname:short)%(color:reset) - %(contents:subject) - %(authorname) (%(color:green)%(committerdate:relative)%(color:reset))' - # ff [] # if no are given, tries to fast-forward with the upstream branch ff = !"perl -MGit -E' \ push @ARGV, Git::command_oneline(qw/rev-parse --abbrev-ref --symbolic-full-name @{u}/) unless @ARGV; \ Git::command_noisy(qw{merge --ff-only}, @ARGV); \ '" # ff = merge --ff-only # tomerge tells you which branches matching have not been merged into yet # defaults to HEAD # defaults to . tomerge = !"perl -MGit -E' \ my ($br, $rx) = (shift // q{HEAD}, shift // qr{.}); \ say for grep { \ /$rx/ && !/\\b(master|maint|next)/; \ } Git::command(qw{branch -r --no-merged}, $br); \ '" # topics # show topics (branches) matching the ai/description format or topics = !"perl -MGit -MList::Util=uniq -E' \ my $rx = shift // qr{[a-z]{1,3}/.}; \ say for uniq map { \ $_ = (split /\\s/)[2]; \ s!(remotes|origin)/!!g; \ /$rx/ && !/HEAD/ ? $_ : () \ } Git::command(qw/branch --sort=committerdate -r/) \ '"