[core]
	pager = less -x4 -F -X
	editor = vim
	excludesfile = ~/.config/git/ignore

[user]
	name = Bert Peters
	email = bert@bertptrs.nl

[color]
	ui = auto

[log]
	abbrevCommit = true
	follow = true

[commit]
	verbose = true

[push]
	default = simple
	autoSetupRemote = true
	followTags = true

[merge]
	tool = vimdiff
	conflictstyle = zdiff3

[help]
	autocorrect = 10

[pull]
	rebase = true

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

[alias]
	cp = cherry-pick
	autosquash = rebase -i --autosquash
	pushf = push --force-with-lease
	fixup = commit --fixup=@
	master = !git fetch && git checkout -B master origin/master
	del = branch -D

[rebase]
	autosquash = true
	updaterefs = true
	autoStash = true

[fetch]
	prune = true
	pruneTags = true
	all = true

[sendemail]
	smtpserver = charon.bertptrs.nl
	smtpserverport = 587
	smtpuser = bert
	smtpencryption = tls

[blame]
	# Ignore certain commits while generating "git blame." Filename taken from
	# Github's pseudo-standard
	#
	# 2023-01-26: Enabling this by default causes blame to fail in all repos
	# that do not have it. Not desirable behaviour. Should be manually enabled
	# per-repo.
	#
	# ignoreRevsFile = .git-blame-ignore-revs Mark any lines that have had a
	# commit skipped using --ignore-rev with a `?`
	markIgnoredLines = true
	# Mark any lines that were added in a skipped commit and can not be
	# attributed with a `*`
	markUnblamableLines = true
[branch]
	sort = -committerdate
[diff]
	algorithm = histogram
	colorMoved = plain
	mnemonicprefix = true
	renames = true
[rerere]
	enabled = true
	autoupdate = true
[tag]
	sort = version:refname
