Skip to content

Instantly share code, notes, and snippets.

@almozavr
Created June 10, 2014 07:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save almozavr/144d603fc81dbf4e211d to your computer and use it in GitHub Desktop.
Save almozavr/144d603fc81dbf4e211d to your computer and use it in GitHub Desktop.
global git config
# core {{{
[core]
excludesfile = /Users/almozavr/.gitignore_global
pager=less -x4
quotepath = false
pager = less
autocrlf = input
#}}}
# user {{{
[user]
email = a.malevaniy@gmail.com
name = Aleksey Malevaniy
#}}}
# color {{{
[color]
branch = auto
diff = auto
status = auto
[color "branch"]
current = red reverse
local = blue
remote = green
[color "diff"]
meta = yellow bold
frag = magenta bold
old = red bold
new = green bold
[color "status"]
added = yellow
changed = green
untracked = cyan
# }}}
# push/pull/diff/options {{{
[push]
default = tracking
[pull]
default = current
[diff]
mnemonicprefix = true
tool = Kaleidoscope
renamelimit = 15000
[branch]
autosetuprebase = always
[apply]
whitespace = nowarn
#}}}
# alias {{{
[alias]
st = status -s
cl = clone
ci = commit
cm = commit -m
cma = commit -a -m
ca = commit --amend
amend = commit --amend
caa = commit -a --amend -C HEAD
filelog = log -u
fl = log -u
ai = add --interactive
co = checkout
br = branch
#"!git branch -ra | grep -v done"
bra = branch -ra
#list commands
le = log --oneline --decorate
ll = log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --numstat
ls1 = log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate
lds = log --pretty=format:"%C(yellow)%h\\ %C(green)%ad%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --date=short --graph
ls = log --pretty=format:"%C(green)%h\\ %C(yellow)[%ad]%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --date=relative
lc = "!f() { git ll "$1"^.."$1"; }; f"
lnc = log --pretty=format:"%h\\ %s\\ [%cn]"
#list all aliases
la = "!git config -l | grep alias | cut -c 7-"
diff = diff --word-diff
d = diff --word-diff
dc = diff --cached
dt = difftool
#list modified files in last commit
dl = "!git ll -1"
#diff last commit
dlc = diff --cached HEAD^
dr = "!f() { git diff "$1"^.."$1"; }; f"
diffr = "!f() { git diff "$1"^.."$1"; }; f"
branch = branch -ra
#reset commands
r = reset
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
cp = cherry-pick
grep = grep -Ii
gr = grep -Ii
#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"
#grep on filename
f = "!git ls-files | grep -i"
#rename branch tree to done-
done = "!f() { git branch | grep "$1" | cut -c 3- | grep -v done | xargs -I{} git branch -m {} done-{}; }; f"
#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 st -s | awk {'print $2'} | xargs git assume"
lasttag = describe --tags --abbrev=0
lt = describe --tags --abbrev=0
#merges
ours = "!f() { git co --ours $@ && git add $@; }; f"
theirs = "!f() { git co --theirs $@ && git add $@; }; f"
l = log --graph --pretty=format:'%C(yellow)%h%C(cyan)%d%Creset %s %C(white)- %an, %ar%Creset'
d = diff
# }}}
[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
[difftool "Kaleidoscope"]
cmd = ksdiff --partial-changeset --relative-path \"$MERGED\" -- \"$LOCAL\" \"$REMOTE\"
[difftool]
prompt = false
[mergetool "Kaleidoscope"]
cmd = ksdiff --merge --output \"$MERGED\" --base \"$BASE\" -- \"$LOCAL\" --snapshot \"$REMOTE\" --snapshot
trustExitCode = true
[mergetool]
prompt = false
[merge]
tool = Kaleidoscope
# custom aliases {{{
[alias]
log-branch-only = "!f() { arg1=$1; if [ $# -ne 2 ]; then arg2=$arg1; arg1='HEAD'; else arg2=$2; fi; git merge-base $arg1 $arg2 | xargs -I {} git l {}..$arg2; }; f"
[alias]
diff-branch-only = "!f() { arg1=$1; if [[ $# -lt 2 ]] || [[ $2 == -* ]] ; then arg2=$arg1; arg1='HEAD'; arg3=${*:2}; else arg2=$2; arg3=${*:3}; fi; hash=`git merge-base $arg1 $arg2`; git diff $hash..$arg2 $arg3; }; f"
[alias]
premerge = "merge --no-ff --no-commit"
[alias]
contains = "!git log --oneline --decorate | grep"
# }}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment