]> git.netwichtig.de Git - user/henk/vcsh/git.git/blobdiff - .config/git/config
mainly for r10k
[user/henk/vcsh/git.git] / .config / git / config
index 399a3a7ec8c8b1df449daca887c220df003b9dae..bf56d483cc75a251837948a05bc46ec3e5107007 100644 (file)
@@ -1,10 +1,20 @@
 [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
+[core]
+  # complain about tabs used for indenting
+  # commented because I switched to tabs
+  # and yaml can’t use tabs
+  # so either variant will  complain
+  # whitespace = tab-in-indent
 [diff]
   # use (i)ndex, (w)orktree, (c)ommit, etc instead of a/ and b/
   mnemonicprefix = true
   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
+  pretty=compact
 [grep]
   # show linenumber (-n)
   lineNumber = true
+[init]
+  defaultBranch = main
+[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
@@ -37,7 +63,7 @@
   # when in a dirty worktree, automatically create a stash before and apply after rebasing
   autoStash = true
   # automatically squash marked commits (squash! …, fixup! …)
-  autosquash = true
+  autoSquash = true
 [rerere]
   # don’t use rerere to resolve merge conflicts
   enabled = false
   b      = branch
   br     = branch
   bra    = branch --all
+  brav   = branch --all --verbose --verbose
 
   co  = checkout
-  cob = checkout -b
 
   cp  = cherry-pick
   cpa = cherry-pick --abort
   cpc = cherry-pick --continue
 
   c     = commit
+  ca    = commit --all
   cm    = commit --message
-  cma   = commit --all --message
-  cmv   = commit --verbose
-  cmav  = commit --all --verbose
-  amend = commit --amend
-  ca    = commit --amend
-  cam   = commit --amend --message
-  can   = commit --amend --no-edit
-  caa   = commit --amend --all
-  cana  = commit --amend --all --no-edit
+  cam   = commit --all --message
   fix   = commit --all --fixup
 
-  diff  = diff --word-diff
   d     = diff --word-diff
   dc    = diff --cached
   dlc   = diff --cached HEAD^
   # grep on filename
   f = "!git ls-files | grep -i"
 
-  g    = grep -Ii
-  gr   = grep -Ii
-  grep = grep -Ii
+  g    = grep -I
+  gr   = grep -I
+  gra  = "!sh -c 'git grep "$0" "$@" "$(git for-each-ref --format=\"%(refname)\"" refs/)'"
+  grep = grep -I
 
-  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]"
+  log     = log --graph
+  l       = log --graph
+  la      = log --graph --all
+  lap     = log --graph --all --patch
   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
+  ls      = log --stat
   # tag logs
   taglog = "log --tags --simplify-by-decoration --pretty='format:%ci %d'"
 
   remp = remote prune
   remu = remote update
 
-  rb  = rebase
-  rba = rebase --abort
-  rbc = rebase --continue
-  rbi = rebase --interactive
+  frbp = "!f() { git fetch; git rebase "$1"; git push --force-with-lease; }; f"
+  rb   = rebase
+  rba  = rebase --abort
+  rbc  = rebase --continue
+  rbi  = rebase --interactive
+  rbm = "!f() { git switch "$1" && git rebase - && git switch - && git merge -; }; f"
 
   r   = reset
   r1  = reset HEAD^
 
   sl = stash list
   sa = stash apply
+  sp = stash pop
   ss = stash save
 
   st = status --short
 
   sw = switch
+  swc = switch --create
 
   # add subtree
   sba = "!f() { git subtree add --prefix $2 $1 master --squash; }; f"
 
   wl = worktree list
 
-  serve = !git daemon --reuseaddr --verbose  --base-path=. --export-all ./.git
+  serve = daemon --reuseaddr --verbose --base-path=. --export-all ./.git