[include]
	# NOTE: These paths are imported if they exist and ignored if they don't
	# This allows us to have a single config file for all our machines
	# and control the specifics by symlinking the relevant files per-machine
	path = ~/.config/git/config-fragments/global-mailmap.gitconfig
	path = ~/.config/git/config-fragments/personal-info.gitconfig
	path = ~/.config/git/config-fragments/enable-signing.gitconfig

[init]
    defaultBranch = master

[pull]
    rebase = false

[advice]
    detachedHead = true

[alias]
	authors = shortlog --summary --numbered --email
	tree = log --graph --decorate --abbrev-commit --all \
			--pretty=format:'%C(yellow)commit %h%C(auto)%d%n%C(cyan)Author:%Creset %aN %C(dim white)<%aE>%n%C(cyan)Date:%Creset %C(dim white)%ad (%ar)%n%s%n' \
			--date=format:'%b %d %Y %H:%M:%S %z'
	branches = branch -a -l -vv
	overview = log --all --pretty=format:'%C(green)commit %C(yellow)%h%C(green) by %C(reset)%C(yellow)%aN %C(dim white)(%ar) %n%C(dim white)%S%n%B%n'
	lscommits = ! ( echo -e "Commits\tFile" && git log --pretty=format: --name-only | sed '/^$/d' | sort | uniq -c | sort -g -r ) | less
    lsc = lscommits
    diff-against = diff --merge-base 
    fix-recreated-branch = reset --hard @{u}
    fa = fetch --all
    pa = pull --all
    c = commit
    aa = add .

[filter "lfs"]
	clean = git-lfs clean -- %f
	smudge = git-lfs smudge -- %f
	process = git-lfs filter-process
	required = true

[url "ssh://git@github.com/"]
    pushInsteadOf = https://github.com/

[credential "https://github.com"]
	helper = 
	helper = !/usr/bin/gh auth git-credential

[credential "https://gist.github.com"]
	helper = 
	helper = !/usr/bin/gh auth git-credential