]> git.netwichtig.de Git - user/henk/vcsh/git.git/blobdiff - .config/git/config
Complain about tabs in indents
[user/henk/vcsh/git.git] / .config / git / config
index c6ff7dd84681a2095a8268b1b5fee3eb85f4e85e..82dd88687c05e8c2a833a988cb9d91c5d095044c 100644 (file)
 [user]
-    name = Hendrik Jäger
-    email = hendrik@securosys.ch
+  name = Hendrik Jäger
+  email = gitcommit@henk.geekmail.org
+  signingKey = 0x1B7EADFDDF720123
 
-# push/pull/diff/options
+[branch]
+  # always make new branches rebase on their tracking branch
+  autosetuprebase = always
+[commit]
+  # show diff in commit message editor
+  verbose = true
+[core]
+  # complain about tabs used for indenting
+  whitespace = tab-in-indent
+[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=compact
+[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]
+  compact = %C(auto)%h%Cgreen% cs%Cblue%<(15,trunc)% an%C(auto)%d%Creset% s
 [push]
-    default = current
+  # push to branch with same name on remote
+  default = current
+  # also push reachable annotated tags
+  followTags = true
 [pull]
-    default = current
-[diff]
-    mnemonicprefix = true
-[branch]
-    autosetuprebase = always
-[apply]
-    whitespace = nowarn
-
-[rerere]
-    enabled = false
+  # rebase, don’t merge, local changes
+  rebase = true
+  # only accept fastforwards by default
+  ff = only
 [rebase]
-    autosquash = true
+  # 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 {{{
 [alias]
-# basic {{{
-    st = status -s
-    cl = clone
-    ci = commit
-    co = checkout
-    br = branch
-    r = reset
-    cp = cherry-pick
-    gr = grep -Ii
-# }}}
-# tweak defaults {{{
-    diff = diff --word-diff
-    branch = branch -ra
-    grep = grep -Ii
-    bra = branch -ra
-    ai = add --interactive
-    # grep on filename
-    f = "!git ls-files | grep -i"
-# }}}
-# commit {{{
-    cm = commit -m
-    cma = commit -a -m
-    ca = commit --amend
-    amend = commit --amend
-    caa = commit -a --amend -C HEAD
-# }}}
-# log commands {{{
-    ls = log --pretty=format:"%C(green)%h\\ %C(yellow)[%ad]%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --date=relative
-    ll = log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --numstat
-    lc  = "!f() { git ll "$1"^.."$1"; }; f"
-    lnc = log --pretty=format:"%h\\ %s\\ [%cn]"
-    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
-# }}}
-# diff {{{
-    d = diff --word-diff
-    dc = diff --cached
-    # diff last commit
-    dlc = diff --cached HEAD^
-    dr  = "!f() { git diff -w "$1"^.."$1"; }; f"
-    diffr  = "!f() { git diff "$1"^.."$1"; }; f"
-# }}}
-# reset commands {{{
-    r1 = reset HEAD^
-    r2 = reset HEAD^^
-    rh = reset --hard
-    rh1 = reset HEAD^ --hard
-    rh2 = reset HEAD^^ --hard
-# }}}
-# git svn {{{
-    svnr = svn rebase
-    svnd = svn dcommit
-    svnl = svn log --oneline --show-commit
-# }}}
-# stash {{{
-    sl = stash list
-    sa = stash apply
-    ss = stash save
-# }}}
-# assume aliases {{{
-    assume = update-index --assume-unchanged
-    unassume = update-index --no-assume-unchanged
-    # show assumed files
-    assumed = "!git ls-files -v | grep ^h | cut -c 3-"
-    # unassume all the assumed files
-    unassumeall = "!git assumed | xargs git update-index --no-assume-unchanged"
-    assumeall = "!git status -s | awk {'print $2'} | xargs git assume"
-# }}}
-# subtree {{{
-    #   add
-    sba = "!f() { git subtree add --prefix $2 $1 master --squash; }; f"
-    #   update/pull
-    sbu = "!f() { git subtree pull --prefix $2 $1 master --squash; }; f"
-# }}}
-# various useful {{{
-    # last tag created
-    lasttag = describe --tags --abbrev=0
-    lt = describe --tags --abbrev=0
-
-    # conflict/merges
-    ours = "!f() { git co --ours $@ && git add $@; }; f"
-    theirs = "!f() { git co --theirs $@ && git add $@; }; f"
-
-    #list remotes
-    rem="!git config -l | grep remote.*url | tail -n +2"
-
-    #apply patch from other local repo
-    lap = "!f() { git --git-dir=$1 format-patch -k -1 --stdout $2 | git am -3 -k; }; f"
-
-    #open markdown files edited in last commit
-    last = "!gvim $(git show HEAD --format="" --name-only | grep -e .*md$ | xargs)"
-    #open just created markdown in working directory
-    newmd = "!gvim $(git status -s | awk {'print $2'})"
-
-    # initial empty commit
-    empty = "!git commit -am\"[empty] Initial commit\" --allow-empty"
-
-    # list all aliases
-    la = "!git config -l | grep alias | cut -c 7-"
-# }}}
-# convoluted aliases {{{
-    # grep from root folder
-    gra = "!f() { A=$(pwd) && TOPLEVEL=$(git rev-parse --show-toplevel) && cd $TOPLEVEL && git grep --full-name -In $1 | xargs -I{} echo $TOPLEVEL/{} && cd $A; }; f"
-    #rename branch tree to done-
-    done = "!f() { git branch | grep "$1" | cut -c 3- | grep -v done | xargs -I{} git branch -m {} done-{}; }; f"
-    #add bitbucket remote
-    ra = "!f() { git remote add $1 https://bitbucket.org/$2.git; }; f"
-# }}}
-# worktree list {{{
-    wl = worktree list
-    # undo from here http://megakemp.com/2016/08/25/git-undo/
-    undo = "!f() { git reset --hard $(git rev-parse --abbrev-ref HEAD)@{${1-1}}; }; f"
-# }}}
-
-serve = !git daemon --reuseaddr --verbose  --base-path=. --export-all ./.git
+  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
+
+  l       = log
+  la      = log --graph --all
+  lp      = log --patch
+  # 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