Created
October 9, 2014 23:25
-
-
Save JohnathanMarkSmith/3e5e29399f351dff9dc3 to your computer and use it in GitHub Desktop.
I good starting point for a .gitconfig
This file contains hidden or 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] | |
editor = /usr/bin/vim | |
excludesfile = /Users/npaolucci/.gitignore_global | |
pager=less -x4 | |
#}}} | |
# user {{{ | |
[user] | |
email = [email protected] | |
name = Nicola Paolucci | |
#}}} | |
# color {{{ | |
[color] | |
branch = auto | |
diff = auto | |
status = auto | |
[color "branch"] | |
current = red reverse | |
local = blue | |
remote = green | |
[color "diff"] | |
meta = yellow | |
frag = magenta | |
old = red bold | |
new = green | |
plain = white | |
[color "status"] | |
added = yellow | |
changed = green | |
untracked = cyan | |
# }}} | |
# push/pull/diff/options {{{ | |
[push] | |
default = upstream | |
[pull] | |
default = current | |
[diff] | |
memonicprefix = true | |
[branch] | |
autosetuprebase = always | |
[apply] | |
whitespace = nowarn | |
#}}} | |
# difftools {{{ | |
[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 | |
# }}} | |
# 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 | |
#list modified files in last commit | |
dl = "!git ll -1" | |
#diff last commit | |
dlc = diff --cached HEAD^ | |
dr = "!f() { git diff -w "$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" | |
#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" | |
#subtree add | |
sba = "!f() { git subtree add --prefix $2 $1 master --squash; }; f" | |
# initial empty commit | |
empty = "!git commit -am\"[empty] Initial commit\" --allow-empty" | |
#add bitbucket remote | |
ra = "!f() { git remote add $1 https://bitbucket.org/$2.git; }; f" | |
# }}} | |
[rerere] | |
enabled = true | |
[rebase] | |
autosquash = true |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment