Last active
August 29, 2015 14:06
-
-
Save almozavr/4ee31530952cfa86f41c to your computer and use it in GitHub Desktop.
Basic config with great aliases
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# core {{{ | |
[core] | |
excludesfile = ~/.gitignore_global | |
pager=less -x4 | |
quotepath = false | |
pager = less | |
autocrlf = input | |
#}}} | |
# user {{{ | |
[user] | |
email = YOUR@EMAIL.COM | |
name = SOME FELLOW | |
#}}} | |
# 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" | |
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" | |
premerge = "merge --no-ff --no-commit" | |
contains = "!git log --oneline --decorate | grep" | |
up = !git pull --rebase --prune $@ && git submodule update --init --recursive | |
save = !git add -A && git commit -m 'SAVEPOINT' | |
wip = !git add -u && git commit -m "WIP" | |
undo = reset HEAD~1 --mixed | |
wipe = !git add -A && git commit -qm 'WIPE SAVEPOINT' && git reset HEAD~1 --hard | |
bclean = "!f() { git branch --merged ${1-master} | grep -v " ${1-master}$" | xargs git branch -d; }; f" | |
bdone = "!f() { git checkout ${1-master} && git up && git bclean ${1-master}; }; f" | |
# }}} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment