]> 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 6b599f0f5304b86e2155675c72745d51f08fae30..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
-[push]
-  default = current
-[pull]
-  default = current
-  ff = only
-[diff]
-  mnemonicprefix = true
 [branch]
+  # always make new branches rebase on their tracking branch
   autosetuprebase = always
-[apply]
-  whitespace = nowarn
+[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]
+  # 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
-
-[rerere]
-  enabled = false
 [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 {{{
 [alias]
-# basic {{{
-  pl = pull
-  ps = push
-  st = status -s
-  cl = clone
-  ci = commit
-  co = checkout
-  cob = checkout -b
-  br = branch
-  r = reset
-  cp = cherry-pick
-  gr = grep -Ii
-  please = push --force-with-lease
-# }}}
-# tweak defaults {{{
-  diff = diff --word-diff
-  branch = branch -ra
-  grep = grep -Ii
-  bra = branch -ra
+  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"
-# }}}
-# commit {{{
-  cm = commit -m
-  cma = commit -a -m
-  cmv = commit -a -v
-  ca = commit --amend
-  amend = commit --amend
-  caa = commit -a --amend -C HEAD
-  fix = commit --fixup
-# }}}
-# 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
-  lga = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --all
-# }}}
-# 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"
 
+  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'"
 
-  # conflict/merges
-  ours = "!f() { git co --ours $@ && git add $@; }; f"
-  theirs = "!f() { git co --theirs $@ && git add $@; }; f"
+  pl  = pull
+  pla = pull --all
 
-  #list remotes
-  rem="!git config -l | grep remote.*url | tail -n +2"
+  ps     = push
+  please = push --force-with-lease
 
-  #apply patch from other local repo
-  lap = "!f() { git --git-dir=$1 format-patch -k -1 --stdout $2 | git am -3 -k; }; f"
+  rem  = remote
+  remp = remote prune
+  remu = remote update
 
-  #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'})"
+  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"
 
-  # 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
+  serve = daemon --reuseaddr --verbose --base-path=. --export-all ./.git