dotfiles/copy/gitconfig
2019-12-11 12:13:54 +01:00

102 lines
3.9 KiB
Text

[user]
email = nikolasweger@googlemail.com
name = Nikolas Weger
[alias]
exec = ! "exec"
st = status -sb
br = branch -vv
bra = branch -vv --all
bed = branch --edit-description
aa = add --all :/
ci = commit -v
ca = commit --amend -v
save = commit -a -m "Save"
co = checkout
di = diff
dis = diff --stat
diw = diff --color-words
dic = diff --color-words=.
dc = diff --cached
dcs = diff --cached --stat
dcw = diff --cached --color-words
dcc = diff --cached --color-words=.
dh = diff HEAD~
dhs = diff HEAD~ --stat
dhw = diff HEAD~ --color-words
dhc = diff HEAD~ --color-words=.
grp = grep -C 1
ff = merge --ff-only
noff = merge --no-ff
fa = fetch --all
deleted = remote prune --dry-run
prunable = ! "pr() { git remote | xargs -L 1 git deleted; }; pr"
pruneall = ! "pa() { git remote | xargs -L 1 git remote prune; }; pa"
pullff = pull --ff-only
pullrb = pull --rebase
mirror-remote = ! "mr() { git push \"${2}\" \"refs/remotes/${1}/*:refs/heads/*\" && git remote set-head \"${2}\" -a; }; mr"
count = diff --stat "4b825dc642cb6eb9a060e54bf8d69288fbee4904" # hash of empty tree
credit = shortlog -sn
linecredit = ! "lc() { git ls-tree --name-only -z -r HEAD | xargs -0 -n1 git diff --no-index --numstat /dev/null 2>/dev/null | grep -v '^-' | cut -f 3- | cut -d ' ' -f 3- | xargs -n1 git blame --line-porcelain | grep '^author ' | cut -d ' ' -f 2- | sort | uniq -c | sort -nr; }; lc"
cc = rev-list HEAD --count
cca = rev-list --all --count
lg = log -p
gr = log --graph --format=compact # graph
grl = log --graph --format=line # graph line
grd = log --graph --format=detail # graph detail
gra = log --graph --format=compact --all # graph all
gral = log --graph --format=line --all # graph all line
grad = log --graph --format=detail --all # graph all in detail
sf = show --format=fuller
sfs = show --format=fuller --stat
info = ! "inf() { if git rev-parse ${1} >/dev/null 2>&1; then git cat-file -p $(git rev-parse ${1}); else echo Invalid object; fi }; inf"
cleanall = clean -fdx # this is dangerous, so it's intentionally long to type
update-submodules = submodule update --init --recursive
upgrade-submodules = submodule update --init --remote
upgrade-all-submodules = submodule foreach git pull origin master
empty-tree-hash = hash-object -t tree /dev/null
root = rev-parse --show-toplevel
ctags = ! "ctg() { trap \"rm -f .git/tags.$$\" EXIT; ctags --tag-relative -Rf.git/tags.$$ --exclude=.git; mv .git/tags.$$ .git/tags; }; ctg"
tar = ! "tar() { git archive --format tar --prefix=\"${PWD##*/}/\" HEAD -o ${1}; }; tar"
targz = ! "targz() { git archive --format tar.gz --prefix=\"${PWD##*/}/\" HEAD -o ${1}; }; targz"
zip = ! "zip() { git archive --format zip --prefix=\"${PWD##*/}/\" HEAD -o ${1}; }; zip"
[color]
ui = auto
[color "grep"]
match = cyan bold
selected = blue
context = normal
filename = magenta
linenumber = green
separator = yellow
function = blue
[pretty]
line = "%C(auto)%h%d %s %C(yellow)by %C(blue)%an %C(green)%ar"
compact = "%C(auto)%h %s %C(green)%ar%n %C(auto)%d%n"
detail = "%C(auto)%h %s%n %C(yellow)by %C(blue)%an %C(magenta)<%ae> [%G?] %C(green)%ar%n %C(auto)%d%n"
[merge]
defaultToUpstream = true
tool = vimdiff
[mergetool]
keepBackup = false
[push]
default = upstream
[credential]
helper = cache --timeout=3600
[grep]
lineNumber = true
[advice]
detachedHead = false
[core]
excludesfile = /etc/gitignore
editor = nano