# set your user tokens as environment variables, such as ~/.secrets # See the README for examples. [color] ui = true [color "branch"] current = yellow reverse local = yellow remote = green [color "diff"] meta = yellow bold frag = magenta bold old = red new = green [alias] # add a = add # add chunkyadd = add --patch # stage commits chunk by chunk # via http://blog.apiaxle.com/post/handy-git-tips-to-stop-you-getting-fired/ snapshot = !git stash save "snapshot: $(date)" && git stash apply "stash@{0}" snapshots = !git stash list --grep snapshot #via http://stackoverflow.com/questions/5188320/how-can-i-get-a-list-of-git-branches-ordered-by-most-recent-commit recent-branches = !git for-each-ref --count=15 --sort=-committerdate refs/heads/ --format='%(refname:short)' # branch b = branch -v # branch (verbose) # commit c = commit -S -m # commit with message ca = commit -am # commit all with message ci = commit # commit amend = commit --amend # ammend your last commit # checkout co = checkout # checkout nb = checkout -b # create and switch to a new branch (mnemonic: "git new branch branchname...") # cherry-pick cp = cherry-pick -x # grab a change from a branch # diff d = diff # diff unstaged changes dc = diff --cached # diff staged changes last = diff HEAD^ # diff last committed change # log l = log --graph --date=short changes = log --pretty=format:\"%h %cr %cn %Cgreen%s%Creset\" --name-status short = log --pretty=format:\"%h %cr %cn %Cgreen%s%Creset\" simple = log --pretty=format:\" * %s\" shortnocolor = log --pretty=format:\"%h %cr %cn %s\" # pull pl = pull # pull # push ps = push # push # rebase rc = rebase --continue # continue rebase rs = rebase --skip # skip rebase # remote r = remote -v # show remotes (verbose) # reset unstage = reset HEAD # remove files from index (tracking) uncommit = reset --soft HEAD^ # go back before last commit, with files in uncommitted state filelog = log -u # show changes to a file mt = mergetool # fire up the merge tool # stash ss = stash # stash changes sl = stash list # list stashes sa = stash apply # apply stash (restore changes) sd = stash drop # drop stashes (destory changes) # status s = status # status st = status # status stat = status # status # tag t = tag -n # show tags with lines of each tag message # svn helpers svnr = svn rebase svnd = svn dcommit svnl = svn log --oneline --show-commit [format] pretty = format:%C(blue)%ad%Creset %C(yellow)%h%C(green)%d%Creset %C(blue)%s %C(magenta) [%an]%Creset [mergetool] prompt = false [mergetool "mvimdiff"] cmd="mvim -c 'Gdiff' $MERGED" # use fugitive.vim for 3-way merge keepbackup=false [merge] summary = true verbosity = 1 tool = vimdiff [apply] whitespace = nowarn [branch] autosetupmerge = true [pull] ff = only [push] # 'git push' will push the current branch to its tracking branch # the usual default is to push all branches default = tracking [core] autocrlf = false editor = helix [advice] statusHints = false [diff] # Git diff will use (i)ndex, (w)ork tree, (c)ommit and (o)bject # instead of a/b/c/d as prefixes for patches mnemonicprefix = true algorithm = patience [rerere] # Remember my merges # http://gitfu.wordpress.com/2008/04/20/git-rerere-rereremember-what-you-did-last-time/ enabled = true [init] defaultBranch = main [commit] gpgSign = true verbose = true