git/dot-config/git/config

135 lines
2.9 KiB
Plaintext

# vim: ft=gitconfig
[user]
name = Danielle McLean
email = dani@00dani.me
signingkey = 83F3DCEC98D522B6A38AF5D927D076D2ACA7BABE
[commit]
gpgsign = true
[alias]
co = checkout
d = diff
l = log --graph --pretty=graph --date=relative
up = pull --prune --rebase=merges --autostash
patch = !git --no-pager diff --no-color
st = status --short
shove = "!f() { git push ${1:-origin} :; }; f"
[color "diff"]
meta = yellow
frag = magenta bold
commit = yellow bold
old = red bold
new = green bold
whitespace = red reverse
[color "diff-highlight"]
oldNormal = red bold
oldHighlight = red bold 52
newNormal = green bold
newHighlight = green bold 22
[column]
ui = auto
[core]
pager = delta
[interactive]
diffFilter = delta --color-only
[delta]
line-numbers = true
tabs = 2
syntax-theme = Monokai Extended
[diff]
colorMoved = true
[diff "dyff"]
command = "dyff_between() { dyff --color on between --omit-header \"$2\" \"$5\"; }; dyff_between"
[diff "gpg"]
binary = true
textconv = "gpg -qd --no-tty"
[diff "lockb"]
binary = true
textconv = "bun"
[diff "sops"]
textconv = "sops -d"
[dude]
icon = ~/.config/git-dude/icon.png
[filter "lfs"]
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f
process = git-lfs filter-process
required = true
[help]
autocorrect = 20
[init]
defaultBranch = main
[log]
decorate = true
[merge]
conflictStyle = diff3
[pretty]
graph = tformat:%C(auto)%h %G? %s% gD% D
[pull]
rebase = false
[push]
default = simple
gpgSign = if-asked
[rerere]
enabled = true
[status]
branch = true
[submodule]
recurse = true
[url "git@github.com:"]
pushInsteadOf = https://github.com/
[url "git@git.00dani.me:"]
pushInsteadOf = https://git.00dani.me/
# This is a frankly ridiculous hack. Tower (https://www.git-tower.com) supports
# signing and verifying with GPG, but it requires you to select a GPG binary in
# its settings, and it overwrites the value of gpg.program in your Git config
# to be an absolute path when you do this. This is a problem if you reuse your
# Git config across platforms where GPG might be in different places, which I
# do. In my opinion it's a bug in how Tower works, but I've tried contacting
# support about it and they won't change it. So hacks it is.
[gpg]
program = /usr/local/bin/gpg
# The workaround is to specify the absolute GPG path that Tower wants first
# (above). Tower will see this setting and its GPG functionality will work
# properly. Then, the gpg.program setting I actually want is stored in an
# include file, and that include file is loaded conditionally using includeIf.
# Tower doesn't seem to understand this, but Git does. The condition I've used
# is always true, so Git itself always loads this file and my gpg.program
# setting is overridden with the correct one.
[includeIf "onbranch:**"]
path = tools/gpg-for-git-signing
[include]
path = tools/kdiff3
path = tools/kitty-diff
path = config.os
path = config.local