# better? defaults
[help]
	autocorrect = prompt
[init]
	defaultBranch = main
[column]
	ui = auto
[branch]
	sort = -committerdate
[tag]
	sort = version:refname
[status]
	branch = true
	short = true
	showStash = true
	showUntrackedFiles = all
	submoduleSummary = true
[log]
	date = iso
[fetch]
	prune = true
	pruneTags = true
[push]
	autoSetupRemote = true
	followTags = true
	recurseSubmodules = on-demand
[pull]
	rebase = true
[rerere]
	enabled = true
	autoupdate = true
[gc]
	reflogExpire = 200
	reflogExpireUnreachable = 90
[commit]
	verbose = true
	gpgsign = true
	template = ~/.config/git/template
[rebase]
	autoSquash = true
	autoStash = true
	updateRefs = true
# my setup
[core]
	editor = vim
	whitespace = -trailing-space,-space-before-tab
	compression = 9  # trade cpu for network
[pager]
	diff = diffnav
	show = diffnav
[alias]
	lazy = !lazygit
	l = !lazygit
	commit--interactive= !clear && git status && git commit --interactive
	diff-dirs = diff --dirstat --find-copies --find-renames --histogram --color
	notes-json = !git notes | njs -p '$.stdin.lines().map(l=> l.split(\" \")).map(([ id_note, id_commit ])=> ({id_commit, id_note, head: s.$().run`git show ${id_note}`.head().toString().split(\"\\n\")}))' 'o=> JSON.stringify(o, null, \"\t\")'
	submodule-update-merge = submodule update --remote --merge
	symbolic-ref-defaultBranch = !git symbolic-ref refs/remotes/origin/HEAD | cut -d'/' -f4-
	tag-l = tag -l --sort=-creatordate --format='%(refname:short):	[%(creatordate:short)]	%(subject)'
	h-branches = !echo 'brv (git-extras)'
	h-format-htma = !echo '%Cred%h%Creset %Cgreen[%ad] -%C(yellow)%d%Creset %s %C(bold blue)<%an>%Creset'
	h-unstage = !echo reset HEAD --
	h-undoall = !echo reset --soft HEAD^
	h-submodule-delete = !echo 'delete-submodule (git-extras)'
[but "alias"]
	sta = status -v
	sta-f = status -vf
	co = commit
[diff]
	wsErrorHighlight = all
	tool = vimdiff
	submodule = log
	algorithm = histogram
# https://git-scm.com/docs/git-diff#Documentation/git-diff.txt-code--color-movedltmodegtcode
	colorMoved = dimmed-zebra
	mnemonicPrefix = true
	renames = true
[interactive]
	diffFilter = delta --color-only
[merge]
	tool = vimdiff
	conflictstyle = zdiff3
[delta] # [dandavison/delta: A syntax-highlighting pager for git, diff, and grep output](https://github.com/dandavison/delta)
	syntax-theme= Visual Studio Dark+
	dark = true
	navigate = true
	side-by-side = true
	line-numbers = true
[filter "lfs"]
	required = true
	clean = git-lfs clean -- %f
	smudge = git-lfs smudge -- %f
	process = git-lfs filter-process
[diff "exif"]
	textconv = exiftool
[difftool "kommitdiff"]
[mergetool "kommitmerge"]
	cmd = kommitmerge \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"
	trustExitCode = true

[maintenance]
	repo = /home/jaandrle/Vzdálené/GitHub/dcp-fe-container-certifedpassport
	repo = /home/jaandrle/Vzdálené/GitHub/DHLC-Internet-Networking-old
	repo = /home/jaandrle/Vzdálené/GitHub/DGF-Certified-Supervisory-Academy
[submodule]
	recurse = true

[format]
	coverLetter = auto
	compactSummary = true
	minimal = true
	signOff = true
	outputDirectory = .patches
	thread = shallow
	numbered = auto
[am]
	# keepcr = true # to preserve line endings
	threeWay = true
[include]
	path = ./identities/current.conf
