# This is Git's per-user configuration file.
[user]
# Please adapt and uncomment the following lines:
name = Cezar Neaga
email = hi@cezarneaga.eu
[branch]
autosetuprebase = always
[color "status"]
added = green
changed = yellow
untracked = cyan
[alias]
# list short log
ls = log --pretty=format:"%C(yellow)%h\\ %ad%Cred%d\\ %Creset%s%Cblue\\ [%an]" --decorate --date=short
# list log with details
ll = log --pretty=format:"%C(yellow)%h%\\ %ad%Cred%d\\ %Creset%s%Cblue\\ [%an]" --decorate --numstat
# list all aliases
la = "!git config -l | grep alias | cut -c 7-"
# rename branch to done-branch
done = "!f() { git branch | grep "$1" | cut -c 3- | grep -v done | xargs -I{} git branch -m {} done-{}; }; f"
pl = pull --rebase
s = status -s
ci = commit -m
a = add .
# edit commit message
ca = commit --amend
co = checkout
# see all branches
br = branch -ra
# diff a file that changed
diff = diff --word-diff
# 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"
# }}}
# 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"
# }}}
[core]
excludesfile = /Users/cezar/.gitignore_global
[difftool "sourcetree"]
cmd = opendiff \"$LOCAL\" \"$REMOTE\"
path =
[mergetool "sourcetree"]
cmd = /Applications/SourceTree.app/Contents/Resources/opendiff-w.sh \"$LOCAL\" \"$REMOTE\" -ancestor \"$BASE\" -merge \"$MERGED\"
trustExitCode = true