[user]
	name = Your Name Goes Here
	email = yourname@yourcompany.com

[color]
# ui = true is a superset of all the more specific color options
#  as documented at http://book.git-scm.com/5_customizing_git.html
# When set to always, always use colors in all git commands which are capable of colored output.
# When false, never. When set to true or auto, use colors only when the output is to the terminal.
# When more specific variables of color.* are set, they always take precedence over this setting.
# Defaults to false.
	ui = auto
	# diff = auto
	# status = auto
	# branch = auto
	
[color "branch"]
	current = yellow reverse
	local = yellow
	remote = green
[color "diff"]
	meta = yellow bold
	frag = magenta bold
	old = red bold
	new = green bold
[color "status"]
	added = yellow
	changed = green
	untracked = cyan

[gui]
	fontdiff = -family Monaco -size 10 -weight normal -slant roman -underline 0 -overstrike 0
	recentrepo = /Users/mccm06/Documents/Temp/Scratch/hello/hgw1

[core]
	excludesfile = ~/.gitignore
	quotepath = false
	autocrlf = input
	safecrlf = warn
	editor = mate -w

[alias]
	br = branch -a
	s = status -s -u
	cl = log --stat -C -2
	c = commit
	co = checkout
	d = diff --color-words
	dh = diff HEAD
	dc = diff --staged
	dw = diff --word-diff
	dcw = diff --color-words
	dm = !git diff | mate
	dv = !git diff | vim
	who = shortlog -s --
	ph = push
	pl = pull
	lp = log -p
	lod = log --oneline --decorate
	lg = log --graph
	lpo = log --pretty=oneline --abbrev-commit --graph --decorate --all
	l1 = log --graph --all --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative
	l2 = log --graph --all --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
	spull = !git-svn fetch && git-svn rebase
	spush = !git-svn dcommit
	sync = !git pull && git push
	es = !git pull --rebase && git push
	lf = log --pretty=fuller
	ignorechanges = update-index --assume-unchanged
	noticechanges = update-index --no-assume-unchanged
	gc-ap = gc --aggressive --prune
	listconf = config --global --list
	cam = commit -a -m
	lsm = log -M --stat
	hse = log --stat -5
	diffall = diff HEAD
	logr = log -M
	logr2 = log --stat -M -2
	logit = log --stat -M
	scrub = !git reset --hard && git clean -fd
	pub = !git pub checkout master && git pull && git checkout dev && git rebase master && git checkout master && git merge dev && git wtf
	cs = status
	rv = remote -v
	lwr = log --stat -C
	pur = pull --rebase
	whatis = show -s --pretty='tformat:%h (%s, %ad)' --date=short
	orphank = !gitk --all `git reflog | cut -c1-7`&
	orphanl = !git --pretty=oneline --abbrev-commit --graph --decorate `git reflog | cut -c1-7`
	k = !exec gitk --all&
	testecho1 = !sh -c 'echo with slash: zero=$0 one=$1 two=$2' -
	# te1 RESULT: with slash: zero=- one=A two=B
	testecho2 = !sh -c 'echo without slash: zero=$0 one=$1 two=$2'
	# te2 RESULT: without slash: zero=A one=B two=C
	st = status
	l = log --stat -C
	ll = log --stat -C -3
	servehere = daemon --verbose --informative-errors --reuseaddr --export-all --base-path=. --enable=receive-pack
	servedotgits = !git daemon --verbose --reuseaddr --base-path=. --export-all ./.git
	purgeme = !git clean -fd && git reset --hard
	prunenow = gc --prune=now
	ri = rebase --interactive --autosquash
	lol = log --pretty=oneline --abbrev-commit
	blg = log --graph --decorate --all --abbrev-commit --pretty=oneline
	slog = log --graph --simplify-by-decoration --all --abbrev-commit --pretty=oneline
	lgso = log --graph --date=short --pretty=format:'%C(yellow)%h%Creset %cn%x09%cd %s%C(green bold)%d'
	ro = !git fetch origin && git reset --hard origin/master
	shorten = "!sh -c 'curl -i http://git.io -F url=$1' -"
	pushnotes = !sh -c 'git push $1 refs/notes/*' -
	fetchnotes = !sh -c 'git fetch $1 refs/notes/*:refs/notes/*' -
	showignored = clean -ndX
	showignored2 = ls-files --others --ignored --exclude-standard
	showuntracked = ls-files --others --exclude-standard
	rmmissing = !git rm $(git ls-files --deleted)
	mergekeepoursonly = merge -s ours
	redocommit = reset --soft HEAD^
	listunstaged = diff --name-status
	liststaged = diff --name-status --staged
	listhistory = log --name-status
	logn = log --oneline --name-only
	busypeople = shortlog -6
	busythisweek = shortlog --since=one.week.ago
	configpushtracking = config push.default tracking
	configpushnothing = config push.default nothing
	configpushtracking = config push.default matching
	configpushcurrent = config push.default current
	sizes = "!for eachthing in `git rev-list HEAD --all`; do echo `git cat-file -s $eachthing` $eachthing ; done"
	emptytree = hash-object -t tree /dev/null
	diffemptytreehash = diff -p 4b825dc642cb6eb9a060e54bf8d69288fbee4904
	listfetchedcommits = log ORIG_HEAD.. --stat --no-merges
	llog = log --date=local
	diffnamestatus = diff --name-status
	diffstat=diff --stat
	whatsjusthappened = !sh -c 'git log $1@{1}..$1@{0} "$@"'
	editconflicted = "!f() { git ls-files --unmerged | cut -f2 | sort -u ; }; $EDITOR `f`"
	addconflicted = "!f() { git ls-files --unmerged | cut -f2 | sort -u ; }; git add `f`"

	# Other alias ideas that don't quite work yet
	#testnewrepodoesntwork1 = !echo git init $1 && echo cd $1
	#testnewrepodoesntwork2 = !sh -c 'git init $1; echo hi' -
	#testnewrepodoesntwork3 = "!f() { git init $1}; f"
	nr = "!sh -c 'git init $0'"
	echoparam1 = "!sh -c 'echo $0'"
	#testshfunction = "!function gitme() { git init $1; cd $1; }; gitme"
	
	fixup = "!sh -c 'git commit -m \"fixup! $(git log -1 --format='\\''%s'\\'' $@)\"' -"
	squash = "!sh -c 'git commit -m \"squash! $(git log -1 --format='\\''%s'\\'' $@)\"' -"
	ccfq = "!sh -c 'git add $1 && git commit -m\"Placeholder\"' -"
	bbnl = log --graph --abbrev-commit --decorate --all --pretty=oneline
	bbnclean = clean -ndX


[apply]
	whitespace = nowarn
[rerere]
	enabled = 1

[diff]
	tool = araxis
[difftool]
	prompt = false
#[difftool "myaraxis"]
	# cmd = araxisgitdiff ONE $LOCAL THREE FOUR $REMOTE

[merge]
	tool = araxis
[mergetool]
	prompt = false
	keepBackup = false
#[mergetool "myaraxis"]
    # cmd = araxisgitmerge $PWD/$REMOTE $PWD/$BASE $PWD/$LOCAL $PWD/$MERGED

[branch]
    # Automatically set up pull to be --rebase
    # autosetuprebase = always

[github]
    # https://github.com/blog/180-local-github-config
    user = yourgithubusername
    token = yourgithubtoken

[url "git://github.com/"]
	insteadOf = "ghg://"
	pushInsteadOf = "ghg://"
	# Example: git clone ghg://ntschutta/emacs
[url "git://github.com/matthewmccullough/"]
    insteadOf = "ghgm://"
    pushInsteadOf = "ghgm://"
    # Example: git clone ghgm://hellogitworld
[url "git@github.com:"]
	insteadOf = "ghs://"
	pushInsteadOf = "ghs://"
[url "git@github.com:matthewmccullough/"]
    insteadOf = "ghsm://"
    pushInsteadOf = "ghsm://"
[url "https://github.com/"]
	insteadOf = "ghh://"
	pushInsteadOf = "ghh://"
[url "https://github.com/matthewmccullough/"]
    insteadOf = "ghhm://"
    pushInsteadOf = "ghhm://"
