# 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 = git 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 interactive = auto ui = auto [color "branch"] current = green bold local = green remote = red bold [color "diff"] meta = yellow bold frag = magenta bold old = red bold new = green bold [color "status"] added = green bold changed = yellow bold untracked = red [color "sh"] branch = yellow [push] # push will only do the current branch, not all branches default = current [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 [rerere] enabled = false