# gitconfig [user] name = Nick Nisi email = nick@nisi.org [alias] ci = commit -a co = checkout s = status --short ss = status br = branch -v brt = "!sh -c gbrt" # show a pretty log graph lg = log --graph --pretty=oneline --abbrev-commit --decorate # slight variation of pretty log graph l = log --graph --pretty=format:'%Cred%h%Creset %an: %s - %Creset %C(yellow)%d%Creset %Cgreen(%cr)%Creset' --abbrev-commit --date=relative # show files that have changed between two branches (git dbr master..branch) dbr = diff --name-status # show diff of cached files gdc = diff --cached # show changed files for a commit cf = show --pretty="format:" --name-only # undo a commit undo = reset --soft # show what I did today day = "!sh -c 'git log --reverse --no-merges --branches=* --date=local --after=\"yesterday 11:59PM\" --author=\"`git config --get user.name`\"'" # stash shortcuts sp = stash pop sw = stash save sl = stash list sh = show --pretty="format:" --name-only # submodule shortcuts si = submodule init su = submodule update # show number of commits per contributer, sorted count = shortlog -sn undo = reset --soft HEAD~1 amend = commit --amend -C HEAD # grep commands # 'diff grep' dg = "!sh -c 'git ls-files -m | grep $1 | xargs git diff' -" # diff grep changes between two commits dgc = "!sh -c 'git ls-files | grep $1 | xargs git diff $2 $3 -- ' -" # 'checkout grep' cg = "!sh -c 'git ls-files -m | grep $1 | xargs git checkout ' -" # add grep ag = "!sh -c 'git ls-files -m -o --exclude-standard | grep $1 | xargs git add' -" # add all aa = !git ls-files -d | xargs git rm && git ls-files -m -o --exclude-standard | xargs git add # remove grep - Remove found files that are NOT under version control rg = "!sh -c 'git ls-files --others --exclude-standard | grep $1 | xargs rm' -" [color] diff = auto status = auto branch = auto ui = true [push] # push to the upstream branch but only if it is the same name default = simple [branch] # set up 'git pull' to rebase instead of merge autosetuprebase = always [diff] renames = copies mnemonicprefix = true [core] excludesfile = ~/.gitignore_global pager = less -FXRS -x2 editor = vim [apply] # turn off trailing whitespace warning whitespace = nowarn [mergetool] # remove backup files after a successful merge keepBackup = false [rerere] enabled = false