50 lines · 1.9 KB
[user]
	email = "christian@rocha.is"
	name = "Christian Rocha"
	signingKey = "92B3C5E83E309FE64CB2F833589F6FDD5B820611"

[core]
	editor = "hx"

[color]
	ui = true

[alias]
	ci = "commit"
	co = "checkout"
	count = "!git log --pretty=oneline | wc -l | tr -d ' ' | sed 's/$/ commits/'"
	housekeeping = "!git fsck && git fsck --unreachable && git gc --aggressive --prune && git prune && git prune-packed"
	lg = "!git lg1"
	lg1 = "log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all"
	lg2 = "log --graph --format=format:'%C(117)%h%C(reset) %s %C(dim white)%ar%C(reset) %C(181)%ae%C(reset) %C(141)%d%C(reset)' --all"
	lgs = "log --graph --format=format:'%C(117)%h%C(reset) %C(226)%G?%C(reset) %s %C(dim white)%ar%C(reset) %C(181)%ae%C(reset) %C(141)%d%C(reset)' --all"
	pr = "!gh pr checkout"
	quickfix = "rebase --interactive HEAD^^"
	rs = "restore --staged"
	st = "status"
	sync = "fetch --all --tags --prune"
	branchout = "!f() { repo=$(basename $(git rev-parse --show-toplevel)); git worktree add ~/src/\"$repo\"-\"$1\" -b \"$1\" && cd ~/src/\"$repo\"-\"$1\"; }; f"
	wipeout = "!git branch | sed 's/^[*]* *//' | gum choose --no-limit --header 'Wipeout which branches?' | xargs git branch -D"
	drop-remote-branches = "!f() { git branch -r | sed 's/^[*]* *//' | grep -v 'HEAD ->' | grep -v '/main$' | grep -v '/master$' | gum choose --no-limit --header 'Delete which remote branches?' | while read branch; do remote=$(echo $branch | cut -d/ -f1); name=$(echo $branch | cut -d/ -f2-); git push $remote --delete $name; done; }; f"

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

[gpg]
	format = "openpgp"

[gpg "openpgp"]
	program = "gpg"

[commit]
	gpgSign = true