General git configuration split out into sections mostly.
[pager] color = true
[color] status = auto diff = auto branch = auto [color "status"] added = green changed = blue untracked = red [color "branch"] current = green local = blue remote = red [color "diff"] meta = blue bold frag = black reverse old = red reverse new = green reverse
[alias]
begin = !git init && git commit --allow-empty -m 'Initial empty commit'
up = !git pull --rebase && git push
wsdiff = diff --color-words --ignore-space-at-eol --ignore-space-change --ignore-all-space --ignore-all-space
wdiff = diff --color-words
ci = commit
ciu = commit --all
co = checkout
ds = diff --stat
ba = branch --all
st = status --short --branch
s = status --short --branch --untracked-files=no
unstage = reset HEAD
tlog = log --graph --color=always --abbrev-commit --date=relative --pretty=oneline
hist = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
slog = log --oneline --decorate
fixup = commit --fixup
squash = commit --squash
ri = rebase --interactive --autosquash
ra = rebase --abort
effit = reset --hard
# What commits differ between branches, note, equivalent commits are omitted.
# Use this with three dot operator aka master...origin/master
cpdiff = log --no-merges --left-right --graph --cherry-pick --oneline
# Same as ^ only equivalent commits are listed with a = sign.
cmdiff = log --no-merges --left-right --graph --cherry-mark --oneline
# git update with submodule update
sup = git pull && git submodule update --init --recursive
# git clone with submodules
sc = !git clone --recursive $1
# what files are getting updated a lot
churn = !git log --all -M -C --name-only --format='format:' "$@" | sort | grep -v '^$' | uniq -c | sort | awk 'BEGIN {print "count,file"} {print $1 "," $2}'
# help the gc a bit and get a bit more space back for a local clone
trim = !git reflog expire --expire=now --all && git gc --prune=now
[github] user = mitchty
[credential] helper = netrc -v -f ~/.netrc.gpg -f ~/.netrc
[advice] statushints = false
[gui] fontui = -family Monaco -size 8 -weight normal -slant roman -underline 0 -overstrike 0 fontdiff = -family Monaco -size 8 -weight normal -slant roman -underline 0 -overstrike 0
[http] postBuffer = 209715200
[push] default = simple
[url "https://github.com/"] insteadOf = git://github.com/
[user] name = Mitch Tishmack email = mitch.tishmack@gmail.com
Common crap/build artifacts that git should always ignore.
.*~ *~ .\#* \#* \#*\# .\#*\# .DS_Store *.pyc *.rbc *.elc *.swp *.[oa] *.hi