[user] name = Hendrik Jäger email = gitcommit@henk.geekmail.org signingKey = 0x1B7EADFDDF720123 [branch] # always make new branches rebase on their tracking branch autosetuprebase = always [commit] # show diff in commit message editor verbose = true [diff] # use (i)ndex, (w)orktree, (c)ommit, etc instead of a/ and b/ mnemonicprefix = true # detect renames and copies renames = copies # use different color for moved code (default == zebra, currently) colorMoved = default # use vimdiff as difftool tool = vimdiff [difftool] # do not prompt before invoking difftool prompt = false [fetch] # delete tracking references and info about remote branches # does not delete any branches prune = true [format] # show a lot of info by default pretty=fuller [grep] # show linenumber (-n) lineNumber = true [log] # show short commit sha abbrevCommit = true # show short ref names but only in terminal decorate = auto [merge] # only do fastforward merges ff = only # use vimdiff as mergetool tool = vimdiff [pretty] longline = '%C(auto)%h %<(52,trunc)%s (%aN, %GS %G?, %cr) %d' longlines = '%C(auto)%h %<(52,trunc)%s (%aN, %GS %G?, %cr) %d %n%-w(0,8,8)%+b%-' [push] # push to branch with same name on remote default = current # also push reachable annotated tags followTags = true [pull] # rebase, don’t merge, local changes rebase = true # only accept fastforwards by default ff = only [rebase] # when in a dirty worktree, automatically create a stash before and apply after rebasing autoStash = true # automatically squash marked commits (squash! …, fixup! …) autosquash = true [rerere] # don’t use rerere to resolve merge conflicts enabled = false [alias] a = add aa = add --all ai = add --interactive ap = add --patch au = add --update b = branch br = branch bra = branch --all co = checkout cob = checkout -b cp = cherry-pick cpa = cherry-pick --abort cpc = cherry-pick --continue c = commit ca = commit --all cm = commit --message cam = commit --all --message fix = commit --all --fixup diff = diff --word-diff d = diff --word-diff dc = diff --cached dlc = diff --cached HEAD^ ds = diff --staged dr = "!f() { git diff -w "$1"^.."$1"; }; f" diffr = "!f() { git diff "$1"^.."$1"; }; f" # grep on filename f = "!git ls-files | grep -i" g = grep -Ii gr = grep -Ii grep = grep -Ii ls = log --pretty=format:"%C(green)%h\\ %C(yellow)[%ad]%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate ll = log --graph --topo-order --date=short --abbrev-commit --decorate --all --boundary --pretty=format:'%Cgreen%ad %Cred%h%Creset -%C(yellow)%d%Creset %s %Cblue[%cn]%Creset %Cblue%G?%Creset' lll = log --graph --topo-order --date=iso8601-strict --no-abbrev-commit --abbrev=40 --decorate --all --boundary --pretty=format:'%Cgreen%ad %Cred%h%Creset -%C(yellow)%d%Creset %s %Cblue[%cn <%ce>]%Creset %Cblue%G?%Creset' lc = "!f() { git ll "$1"^.."$1"; }; f" lnc = log --pretty=format:"%h\\ %s\\ [%cn]" lo = log --oneline loga = log --oneline --graph --all lp = log --patch fl = log -u filelog = log -u lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit lga = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --all # tag logs taglog = "log --tags --simplify-by-decoration --pretty='format:%ci %d'" pl = pull pla = pull --all ps = push please = push --force-with-lease rem = remote remp = remote prune remu = remote update rb = rebase rba = rebase --abort rbc = rebase --continue rbi = rebase --interactive r = reset r1 = reset HEAD^ r2 = reset HEAD^^ rh = reset --hard rh1 = reset --hard HEAD^ rh2 = reset --hard HEAD^^ rs = restore sl = stash list sa = stash apply ss = stash save st = status --short sw = switch # add subtree sba = "!f() { git subtree add --prefix $2 $1 master --squash; }; f" # update/pull subtree sbu = "!f() { git subtree pull --prefix $2 $1 master --squash; }; f" # initial empty commit empty = "!git commit -am\"[empty] Initial commit\" --allow-empty" wl = worktree list serve = daemon --reuseaddr --verbose --base-path=. --export-all ./.git