[color]
  ui = true
[core]
  autocrlf = false
[merge]
  tool = opendiff
[help]
  autocorrect = 20
[push]
  default = tracking
[branch]
  # http://d.strelau.net/post/47338904/git-pull-rebase-by-default
  autosetuprebase = always
[alias]
  l = log --stat
  co = checkout
  theirs = checkout --theirs
  ours = checkout --ours
  br = branch
  ci = commit
  st = status -sb
  rename = mv
  unstage = reset HEAD --
  amend = commit --amend --reset-author
  amend-no-reset = commit --amend
  amend-quick = commit --amend --reset-author --no-edit
  last = log -1 HEAD
  viz = !gitx --all
  hack = !hack
  ship = !ship
  restart = !touch ./tmp/restart.txt
  current-branch = !git branch | grep '\\*' | awk '{print $2}'
  freeze = update-index --assume-unchanged
  thaw = update-index --no-assume-unchanged
  has = branch -a --contains
  thas = tag --contains
  loose-branches = branch -r -v --no-merged
  continue = rebase --continue
  abort = rebase --abort
  count = shortlog -sn
  worddiff = diff --word-diff
  enable-pr-branches = config --local --add remote.origin.fetch "+refs/pull/*/head:refs/remotes/origin/pr/*"
  rework = !git co master && git branch -D working && git co -b working && hack
  new-work = !git rework && git co -b
  repull-branch = !CURRENT=`git current-branch` && git co master && git fetch && git branch -d $CURRENT && git co $CURRENT
  tracking-branch = !git rev-parse --abbrev-ref --symbolic-full-name @{u}
  update-branch = !TRACKING=`git tracking-branch` && git fetch && git rebase $TRACKING
  uncommit = !git stash && git reset --soft HEAD^ && git unstage . && git stash pop
  checkpoint = !LASTMSG=`git log -1 --pretty=%B` && git add -A && ((test \"X$LASTMSG\" = \"Xcheckpoint\") && git amend-quick) || git commit -m checkpoint
  make-pull-request = !CURRENT=`git current-branch` && git push --set-upstream origin $CURRENT && hub pull-request -o
  tidy = !git fetch && git remote prune origin && git gc
  merged = !is-git-merged
[credential]
  helper = osxkeychain
[include]
  path = ~/.gitconfig.local