[user]
name = Hendrik Jäger
email = gitcommit@henk.geekmail.org
+ signingKey = 0x1B7EADFDDF720123
[branch]
# always make new branches rebase on their tracking branch
[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
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]
- 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%-
+ 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
# 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
c = commit
ca = commit --all
cm = commit --message
- cma = commit --all --message
- cmv = commit --verbose
- cmav = commit --all --verbose
+ 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]"
- lo = log --oneline
+ 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"