+ # Shortcuts for often used commands.
+ #
+ # Local.
+ c = commit --verbose
+ ci = commit --verbose
+ d = diff PATIENCE
+ di = diff PATIENCE
+ dw = diff PATIENCE --color-words
+ dc = diff PATIENCE --cached
+ dcw = diff PATIENCE --cached --color-words
+ s = status
+ st = status
+ l = log
+ ls = log --stat
+ lp = log --patch PATIENCE
+ a = add
+ ap = add --patch
+ au = add --update
+ # Branches.
+ co = checkout
+ b = branch -a -v
+ br = branch -a -v
+ m = merge
+ me = merge
+ # Remote.
+ f = fetch
+ fe = fetch
+ t = tag
+ p = push
+ pu = push
+ ru = remote update
+ # Patches.
+ fp = format-patch
+ # Misc.
+ fs = fsck --strict --full
+ sl = stash list
+ ss = stash save
+ sa = stash apply
+ ssk = stash save --keep-index
+
+ # Custom commands.
+ #
+ # tig-like log view.
+ glog = log --pretty=oneline --graph --all
+ # Push to all remotes. Thanks to albel727 in #git on Freenode
+ # (2011-06-04 16:06 CEST) for the idea.
+ rp = ! git remote | xargs -L1 -I{} git push {}
+
+[diff]
+ # Detect copies and renames.
+ renames = copy
+
+# Allow diffing of some binary files.
+# `pdftotext-` is a wrapper around pdftotext which writes to stdout.
+# `sqlite3dump` is a wrapper calling `sqlite3 database-file .dump`.
+[diff "gzip"]
+ textconv = gzip -d -c
+[diff "pdf"]
+ textconv = pdftotext-
+[diff "sqlite"]
+ textconv = sqlite3dump
+
+[merge]
+IF(OS, darwin)
+ tool = opendiff
+FI
+IF(OS, debian)
+ tool = vimdiff
+FI
+
+[format]
+ # When using git format-patch use threads and add all patches as
+ # replies to the first one.
+ thread = shallow
+
+# vim: ft=gitconfig