]> git.netwichtig.de Git - user/henk/vcsh/git.git/blobdiff - .config/git/config
expand short options
[user/henk/vcsh/git.git] / .config / git / config
index 35c05f47dafde78b5de240b6cf94724b3c2ce9dd..12a9803726e554c2ec20a63e67caf32f16857f83 100644 (file)
 [user]
-    name = Hendrik Jäger
-    email = hendrik@securosys.ch
+  name = Hendrik Jäger
+  email = gitcommit@henk.geekmail.org
 
-# push/pull/diff/options
+[branch]
+  # always make new branches rebase on their tracking branch
+  autosetuprebase = always
+[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
+[fetch]
+  # delete tracking references and info about remote branches
+  # does not delete any branches
+  prune = true
+[grep]
+  # show linenumber (-n)
+  lineNumber = true
+[merge]
+  # only do fastforward merges
+  ff = only
 [push]
-    default = current
+  # push to branch with same name on remote
+  default = current
 [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
-    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
-    ai = add --interactive
-    # 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
-# }}}
-# 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"
-
-    # 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"
-
-    #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
+  ap = add --patch
+  ai = add --interactive
+
+  b      = branch
+  br     = branch
+  bra    = branch --all
+
+  co  = checkout
+  cob = checkout -b
+
+  cp  = cherry-pick
+  cpa = cherry-pick --abort
+  cpc = cherry-pick --continue
+
+  ci    = commit
+  cm    = commit -m
+  cma   = commit --all -m
+  cmv   = commit --all --verbose
+  ca    = commit --amend
+  amend = commit --amend
+  caa   = commit --all --amend --reuse-message=HEAD
+  fix   = commit --all --fixup
+
+  diff  = diff --word-diff
+  d     = diff --word-diff
+  dc    = diff --cached
+  dlc   = diff --cached HEAD^
+  dr    = "!f() { git diff -w "$1"^.."$1"; }; f"
+  diffr = "!f() { git diff "$1"^.."$1"; }; f"
+
+  gr   = grep -Ii
+  grep = grep -Ii
+
+  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
+  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
+  # 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
+
+  rb  = rebase
+  rba = rebase --abort
+  rbc = rebase --continue
+
+  r   = reset
+  r1  = reset HEAD^
+  r2  = reset HEAD^^
+  rh  = reset --hard
+  rh1 = reset --hard HEAD^
+  rh2 = reset --hard HEAD^^
+
+  sl = stash list
+  sa = stash apply
+  ss = stash save
+
+  s  = status --short
+  st = status --short
+
+  # grep on filename
+  f = "!git ls-files | grep -i"
+  lc  = "!f() { git ll "$1"^.."$1"; }; f"
+  svnr = svn rebase
+  svnd = svn dcommit
+  svnl = svn log --oneline --show-commit
+  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"
+  #   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"
+  # 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-"
+  # 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"
+  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