repositories / dotfiles
dotfiles
bugabingas dorkfiles
owned by admin
git/gitconfig
Raw[alias]
a = add --all
ci = commit --all
co = checkout
bare = clone --bare
l = log --all --graph --pretty=format:'%C(magenta)%h %C(white) %an %ar%C(auto) %D%n%s%n'
m = mergetool
ra = rebase --abort
rc = rebase --continue
st = status --short
unstage = reset HEAD --
up = push
tracked = rev-parse --abbrev-ref --symbolic-full-name @{upstream}
last = log -1 HEAD
ui = !gitu
down = "!sh -c 'git pull --recurse-submodules \"$@\" && git submodule sync --recursive && git submodule update --init --recursive' -"
diffz = difftool --tool zed
rv = "!f() { base=origin/trunk; if [ \"$1\" != \"\" ] && [ \"$1\" != \"--\" ]; then base=$1; shift; fi; if [ \"$1\" = \"--\" ]; then shift; fi; next() { printf '\\n[Enter] %s / [Ctrl-C] stop ' \"$1\"; read -r _; }; git fetch --all --prune || return; echo \"STEP 1/4 COMMITS $base..HEAD\"; git log --oneline --decorate --graph \"$base..HEAD\"; next \"STEP 2/4 FILES\"; echo \"STEP 2/4 FILES $base...HEAD\"; git diff --name-status \"$base...HEAD\" -- \"$@\"; git diff --stat \"$base...HEAD\" -- \"$@\"; next \"STEP 3/4 DELTA DIFF\"; echo \"STEP 3/4 DELTA DIFF $base...HEAD\"; git diff \"$base...HEAD\" -- \"$@\"; next \"STEP 4/4 DIFFTASTIC\"; echo \"STEP 4/4 DIFFTASTIC $base...HEAD\"; git difftool --no-symlinks -d \"$base...HEAD\" -- \"$@\"; }; f"
pf = push --force-with-lease
[core]
attributesfile = ~/.config/git/gitattributes
autocrlf = false
safecrlf = false
compression = 9
editor = nvim
fscache = true
fsmonitor = true
preloadindex = true
quotepath = false
symlinks = true
untrackedcache = true
pager = delta
compression = 9
[log]
abbrevCommit = true
graphColors = blue,yellow,cyan,magenta,green,red
[color "decorate"]
HEAD = red
branch = blue
tag = yellow
remoteBranch = magenta
[color "branch"]
current = magenta
local = default
remote = yellow
upstream = green
plain = blue
[apply]
# `error` is an action, not a core.whitespace token: refuse to apply patches
# that introduce whitespace damage instead of merely warning.
whitespace = error
[advice]
addEmptyPathSpec = false
pushNonFastForward = false
statusHints = false
[url "git@github.com:bugabinga/"]
insteadOf = "bugabinga:"
[url "git@github.com:isp-insoft/"]
insteadOf = "isp:"
[url "git@github.com:"]
insteadOf = "github:"
[status]
branch = true
showStash = true
showUntrackedFiles = all
submoduleSummary = true
[filter "lfs"]
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f
process = git-lfs filter-process
required = true
[help]
# try to automatically correct misspelled git commands
autocorrect = 1
[color]
interactive = true
ui = auto
[rebase]
autoStash = true
updateRefs = true
missingCommitsCheck = warn
[rerere]
enabled = true
autoupdate = true
[difftool]
prompt = false
[difftool "zed"]
# Binary is named 'zeditor' on some distros, 'zed' elsewhere.
cmd = "\"$(command -v zeditor || command -v zed)\" --wait --diff \"$LOCAL\" \"$REMOTE\""
[diff "javap"]
textconv = javap -p -c
cachetextconv = true
[diff "zip"]
textconv = unzip -l
cachetextconv = true
[diff "pandoc"]
textconv = pandoc --to=markdown --wrap=none
cachetextconv = true
[diff "toml"]
xfuncname = "^\\[.*\\]$"
[diff "yaml"]
xfuncname = "^[^ \t#-].*:.*$"
[diff "zig"]
# Hunk headers name the enclosing declaration in Zig and ZON sources.
# Capture groups would truncate the header, so the alternation is group-free.
xfuncname = "^pub .*$|^fn .*$|^const .*$|^var .*$|^test .*$|^export .*$|^inline .*$|^comptime .*$"
[difftool "difftastic"]
cmd = "difft \"$LOCAL\" \"$REMOTE\""
[diff]
# Difftastic as default `git difftool` target.
tool = difftastic
algorithm = histogram
colorMoved = zebra
colorMovedWS = allow-indentation-change
context = 3
interHunkContext = 10
mnemonicPrefix = true
renames = true
submodule = log
[merge]
tool = nvimdiff2
renormalize = true
autostash = true
conflictstyle = zdiff3
[mergetool]
keepBackup = false
prompt = false
[merge "mergiraf"]
name = mergiraf
# A driver that exits non-zero means "conflict", so a missing mergiraf would
# leave the file untouched with no markers. Fall back to git's own merge.
driver = "sh -c 'if command -v mergiraf >/dev/null 2>&1; then exec mergiraf merge --git \"$1\" \"$2\" \"$3\" -s \"$4\" -x \"$5\" -y \"$6\" -p \"$7\" -l \"$8\"; else exec git merge-file --marker-size=\"$8\" -L \"$5\" -L \"$4\" -L \"$6\" \"$2\" \"$1\" \"$3\"; fi' -- %O %A %B %S %X %Y %P %L"
[branch]
sort = committerdate
autoSetupMerge = inherit
[gpg]
format = ssh
[gpg "ssh"]
allowedSignersFile = ~/.config/git/allowed_signers
[tag]
sort = version:refname
gpgSign = true
[transfer]
fsckObjects = true
[receive]
fsckObjects = true
[fetch]
fsckObjects = true
parallel = 0
prune = true
pruneTags = true
all = true
recurseSubmodules = false
[push]
autoSetupRemote = true
default = current
followTags = true
recurseSubmodules = check
[pull]
default = current
rebase = true
recurseSubmodules = false
[interactive]
diffFilter = delta --color-only
singlekey = true
[delta]
side-by-side = true
line-numbers = true
decorations = true
navigate = true
[init]
defaultBranch = trunk
[commit]
verbose = true
gpgSign = true
[submodule]
recurse = false
fetchJobs = 0
[pager]
# Use a pager if the difftool output is larger than one screenful,
# consistent with the behaviour of `git diff`.
difftool = true
[checkout]
workers = 0
[column]
ui = auto
[safe]
bareRepository = explicit
[worktree]
guessRemote = true
# In order to have host-specific configuration, I include additional settings here.
# On each host a different file might be symlinked into '.gitconfig.include'.
[include]
path = .gitconfig.include