From 48f2ac8d148664b25e1e6bb0495c874d2c6e1bfe Mon Sep 17 00:00:00 2001 From: Hendrik Jäger Date: Tue, 15 Aug 2017 08:17:12 +0200 Subject: Initial config based on https://github.com/durdn/cfg/blob/master/.gitconfig --- .config/git/config | 136 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 .config/git/config (limited to '.config/git') diff --git a/.config/git/config b/.config/git/config new file mode 100644 index 0000000..8df0a7c --- /dev/null +++ b/.config/git/config @@ -0,0 +1,136 @@ +[user] + name = Hendrik Jäger + email = hendrik@securosys.ch + +# push/pull/diff/options +[push] + default = current +[pull] + default = current +[diff] + mnemonicprefix = true +[branch] + autosetuprebase = always +[apply] + whitespace = nowarn + +[rerere] + enabled = false +[rebase] + autosquash = true + +# 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 +# }}} +# 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" +# }}} -- cgit v1.2.3