X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=.config%2Fgit%2Fconfig;h=12a9803726e554c2ec20a63e67caf32f16857f83;hb=47d9435f5dd3b60324d0813935d34751be2b1b7d;hp=47d6b7c2a4373d01ee0ee007c1a6f1dca067ddb9;hpb=d98ecabf186d5eaf9f521b33b942ff8eb2f0d87b;p=user%2Fhenk%2Fvcsh%2Fgit.git diff --git a/.config/git/config b/.config/git/config index 47d6b7c..12a9803 100644 --- a/.config/git/config +++ b/.config/git/config @@ -1,140 +1,163 @@ [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 - 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 - 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 - - # 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