# vim: ft=gitconfig:
[user]
	name = Josh Lane
	email = joshlane@easypost.com
	signingKey = E89524BCB5BCD573749DF151CB7007B092A93DF4
[color]
	diff = auto
	status = auto
	branch = auto
	ui = true
[init]
	defaultBranch = main
[alias]
	aa = add -A
	af = log --pretty=format: --name-only --diff-filter=A
	ap = add -p
	at = add -u
	authors = shortlog -s -n --all
	b = branch
	bl = branch --list
	blm = "!git branch --list --format='%(color:bold blue)%(committerdate:relative)\t%(color:yellow)%(refname:short)\t%(color:red)%(objectname:short)' --sort=-committerdate --no-merged | column -t -s $'\t'"
	bp = !bash -lc 'git_checkout_branch'
	bpr = !git for-each-ref --format='%(refname:short)' --sort=-committerdate refs/remotes/ --no-merged | fzf --reverse --height 30% --preview \"git diff --stat --color origin/master...{}\" --preview-window=down:70% | xargs git ct
	br = branch
	cah = commit --amend -CHEAD
	cahr = commit --amend -CHEAD --reset-author
	cav = commit -av
	ccah = commit --amend -cHEAD -v
	ccahr = commit --amend -cHEAD -v --reset-author
	c = commit
	cfd = clean -fd
	cf = diff --name-only
	cob = co -B
	co = checkout
	com = "!git symbolic-ref refs/remotes/origin/HEAD --short | sed 's/origin\\///g' | xargs git switch"
	cpa = cherry-pick --quit
	cp = cherry-pick
	ct = checkout -t
	cv = commit -v
	dc = diff --cached
	d = diff
	do = "!git symbolic-ref refs/remotes/origin/HEAD --short | sed 's/origin\\///g' | xargs git diff"
	dos = "!git symbolic-ref refs/remotes/origin/HEAD --short | sed 's/origin\\///g' | xargs git diff --stat"
	ds = diff
	fa = fetch --all --tags
	f = fetch
	lg = log --graph --pretty=format:'%C(yellow)%h%Creset -%C(red)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
	l = log --decorate --graph
	lx = lg -5
	lp = log --abbrev-commit -p
	ls = branch
	ma = merge --abort
	mf = merge --ff-only
	ms = merge --squash
	patch = !git --no-pager diff --no-color
	ph = push
	pl = pull --rebase
	pop = reset HEAD~1
	prpl = "!_git_pr() { git fetch origin pull/$1/head:pr-$1 && git checkout pr-$1 && git branch --set-upstream-to=refs/pull/$1/head pr-$1; }; _git_pr"
	pr = "!gh pr create"
	prs = "!gh pr list"
	pu = push -u
	ra = rebase --abort
	rba = rebase -x 'git diff --name-only HEAD~1 --diff-filter=AM | xargs ls | xargs ~/.files/bin/bundle-exec-hack rubocop -aDES --force-exclusion'
	rbom = rebase -x 'git diff --name-only HEAD~1 --diff-filter=AM | xargs ls | xargs ~/.files/bin/bundle-exec-hack rubocop -aDES --force-exclusion' origin/master
	rbo = !git symbolic-ref refs/remotes/origin/HEAD --short | xargs git rebase
	rc = rebase --continue
	recent = "!git for-each-ref --format='%(color:bold blue)%(committerdate:relative)\t%(color:yellow)%(refname:short)\t%(color:bold white)%(objectname:short)' --sort=-committerdate refs/heads/ --count 25 | column -t -s $'\t'"
	rho = "!git symbolic-ref refs/remotes/origin/HEAD --short | xargs git reset --hard"
	rh = reset --hard @{u}
	rhu = git reset --hard @{upstream}
	rbo = !git symbolic-ref refs/remotes/origin/HEAD --short | xargs git rebase -i
	ri = rebase -i
	ro = "!git fetch origin && git symbolic-ref refs/remotes/origin/HEAD --short | xargs git reset --hard"
	rp = reset -p
	r = rebase
	rrecent = "!git for-each-ref --format='%(color:bold blue)%(committerdate:relative)\t%(color:bold white)%(refname)\t%(color:yellow)%(authorname) %(authoremail)' --sort=-committerdate refs/remotes/ --count 25 | column -t -s $'\t'"
	sa = !git diff --name-only | fzf -m --reverse --height 70% --preview \"git diff --color {}\" --preview-window=right:80% | xargs git add
	sh = show HEAD --show-signature
	sl = !bash -lc 'git_search_log'
	slb = lg origin/master..HEAD
	slp = lg -p
	sls = log --oneline -5 --stat
	slx = log --oneline -5
	s = status -s .
	sp = status -s
	uf = ls-files -o --exclude-standard
	cm = commit -m
[core]
	excludesfile = ~/.gitignore
	whitespace = trailing-space,space-before-tab,blank-at-eol
	editor = $EDITOR
	pager = delta
[apply]
	whitespace = fix
[push]
	default = current
[branch]
	autosetuprebase = always
[github]
	user = lanej
	password = "!cat ~/.github_changelog_generator"
[rerere]
	enabled = true
[help]
	autocorrect = 5
[filter "media"]
	required = true
	clean = git media clean %f
	smudge = git media smudge %f
[filter "lfs"]
	clean = git-lfs clean -- %f
	smudge = git-lfs smudge -- %f
	required = true
	process = git-lfs filter-process
[rebase]
	autoStash = true
	stat = true
[transfer]
	; fsckObjects = true
[recieve]
	; fsckObjects = true
[fetch]
	; fsckObjects = true
[credential]
	helper = store
[color "diff-so-fancy"]
	oldNormal = red bold
	oldHighlight = red bold 52
	newNormal = green bold
	newHighlight = green bold 22
[color "diff"]
	meta = cyan bold
	frag = brightblack bold
	commit = yellow bold
	old = red bold
	new = green bold
	whitespace = red reverse
[diff-so-fancy]
	markEmptyLines = false
	changeHunkIndicators = false
[diff]
	noprefix = true
	colorMoved = default
[delta]
	features = default
[delta "default"]
	plus-empty-line-marker-style = normal "#263026"
	plus-non-emph-style = syntax "#263026"
	plus-style = syntax "#263026"
	syntax-theme = Nord
	line-numbers = true
	colorMoved = default
	whitespace-error-style = 22 bold red
	zero-style = dim syntax
	max-line-length = 4096
	navigate = true
  	true-color = always
[interactive]
	diffFilter = delta --color-only
[commit]
	gpgsign = false
[log]
	excludeDecoration = refs/tags/phabricator/*
	excludeDecoration = refs/tags/deploy/*
[merge]
	autoStash = true
	conflictstyle = zdiff3
[advice]
	detatchedHead = false
[core]
	logAllRefUpdates = true
	hooksPath = ~/.files/git/hooks

[credential "https://dl.cloudsmith.io/basic/easypost/easypost-rust/cargo/index.git"]
	helper = /usr/local/bin/git-credential-cloudsmith easypost/easypost-rust
[credential "https://github.com"]
	helper = 
	helper = !/opt/homebrew/bin/gh auth git-credential
[credential "https://gist.github.com"]
	helper = 
	helper = !/opt/homebrew/bin/gh auth git-credential
