# vim: ft=gitconfig

[user]
    name = Oleksandr Smirnov
    email = olexsmir@gmail.com
    signingkey = ~/.ssh/git-sign.pub

[gpg]
    program = gpg2
    format = ssh

[gpg "ssh"]
    ;; echo "$(whoami) $(cat $HOME/.ssh/id_*\.pub)" | tee $HOME/.config/git/allowed_signers
    allowedSignersFile = ~/.config/git/allowed_signers

[core]
    editor = nvim
    pager = delta
    quotePath = false

[init]
    defaultBranch = main

[alias]
    pushf = push --force-with-lease
    remotes = remote -v
    l = log --oneline --decorate --graph --all
    st = status -sb
    sw = switch

[interactive]
    diffFilter = delta --color-only
    singlekey = true

[merge]
    conflictstyle = zdiff3

[rebase]
    autoSquash = true
    autoStash = true
    updateRefs = true

[rerere]
    enabled = true
    autoupdate = true

[diff]
    algorithm = histogram
    colorMoved = true
    mnemonicPrefix = true
    renames = true

[delta]
    features = tokyonight

    true-color = always
    navigate = true
    light = false
    keep-plus-minus-markers = true
    line-numbers = true
    file-decoration-style = none

[delta "tokyonight"]
    minus-style                   = syntax "#37222c"
    minus-non-emph-style          = syntax "#37222c"
    minus-emph-style              = syntax "#713137"
    minus-empty-line-marker-style = syntax "#37222c"
    line-numbers-minus-style      = "#b2555b"
    plus-style                    = syntax "#20303b"
    plus-non-emph-style           = syntax "#20303b"
    plus-emph-style               = syntax "#2c5a66"
    plus-empty-line-marker-style  = syntax "#20303b"
    line-numbers-plus-style       = "#266d6a"
    line-numbers-zero-style       = "#3b4261"

[column]
    ui = auto

[branch]
    sort = -committerdate

[commit]
    gpgSign = true
    verbose = true

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

[tag]
    sort = version:refname

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

[pull]
    rebase = true

[help]
    autocorrect = prompt
