Git materialises a remote from the existence of any remote.<name>.* key, so remote.origin.followRemoteHEAD makes `git remote` list an origin in every repo without one - this dotfiles repo included. It reads as a broken remote to anyone looking, and has now been misdiagnosed as leftover cruft twice. Nothing is actually wrong: get-url still fails, so the guards in git-sync and nvim's default_branch() hold. Say so in both places someone would look. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
115 lines
3.7 KiB
Text
115 lines
3.7 KiB
Text
[alias]
|
|
# list aliases
|
|
aliases = !git config --get-regexp 'alias.*' | colrm 1 6 | sed 's/[ ]/ = /' | sort
|
|
bdm = "!git branch --merged | grep -v '*' | xargs -n 1 git branch -d"
|
|
# Reads origin's cached HEAD, which `git sync` and remote.origin.followRemoteHEAD
|
|
# below keep pointing at whatever the server currently calls its default.
|
|
# --short over cut -d/ -f4, which mangles names like release/1.0.
|
|
default-branch = "!git symbolic-ref --short refs/remotes/origin/HEAD | sed 's|^origin/||'"
|
|
lg = log --graph --pretty=tformat:'%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%an %ar)%Creset'
|
|
lg2 = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n' %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --all
|
|
lastchange = log -p --follow -n 1
|
|
plog = log --graph --pretty='format:%C(red)%d%C(reset) %C(yellow)%h%C(reset) %ar %C(green)%aN%C(reset) %s'
|
|
rank = shortlog -sn --no-merges
|
|
st = status -sb
|
|
# `git sync` is not here - it is bin/git-sync, on the $PATH, which git picks
|
|
# up as a subcommand. `git aliases` above will not list it.
|
|
tlog = log --stat --since='1 Day Ago' --graph --pretty=oneline --abbrev-commit --date=relative
|
|
|
|
[apply]
|
|
# Detect whitespace errors when applying a patch
|
|
whitespace = fix
|
|
|
|
[filter "lfs"]
|
|
# git-lfs stuff
|
|
clean = git-lfs clean %f
|
|
smudge = git-lfs smudge %f
|
|
required = true
|
|
|
|
[gpg]
|
|
# Use OpenSSH to sign commits/tags/etc
|
|
format = ssh
|
|
|
|
[gpg "ssh"]
|
|
allowedSignersFile = ~/.ssh/allowed_signers
|
|
|
|
[help]
|
|
# Automatically correct typos in commands
|
|
autoCorrect = prompt
|
|
|
|
[pull]
|
|
ff = only
|
|
|
|
[remote "origin"]
|
|
# refs/remotes/origin/HEAD is written once at clone time, and the default
|
|
# `create` only fills it in when missing - so a default branch renamed on the
|
|
# server (main -> totara-20) leaves every tool reading that ref pointing at a
|
|
# branch that may not even exist. `always` re-points it on each fetch, off the
|
|
# ref advertisement that fetch already receives, so it costs no extra round
|
|
# trip. Only applies to remotes actually named origin.
|
|
#
|
|
# Side effect: git conjures a remote from the existence of any remote.<name>.*
|
|
# key, so this makes `git remote` list a URL-less origin in every repo that
|
|
# has not got one - this repo included. Nothing breaks (`git remote get-url
|
|
# origin` still says No such remote, which is what the scripts test), but do
|
|
# not read that listing as evidence a real origin exists.
|
|
followRemoteHEAD = always
|
|
|
|
[core]
|
|
pager = delta --side-by-side --width ${FZF_PREVIEW_COLUMNS-$COLUMNS}
|
|
|
|
[interactive]
|
|
diffFilter = delta --color-only
|
|
|
|
[include]
|
|
path = ~/.config/delta/themes.gitconfig
|
|
|
|
[delta]
|
|
# use n and N to move between diff sections
|
|
navigate = true
|
|
side-by-side = true
|
|
hyperlinks = true
|
|
hyperlinks-file-link-format = "idea://open?file={path}&line={line}"
|
|
#features = weeping-willow
|
|
|
|
[merge]
|
|
conflictstyle = zdiff3
|
|
|
|
[diff]
|
|
algorithm = histogram
|
|
colorMoved = plain
|
|
mnemonicPrefix = true
|
|
renames = true
|
|
|
|
[tar "tar.xz"]
|
|
command = xz -c
|
|
|
|
[tar "tar.zst"]
|
|
command = zstd -T0 -c
|
|
|
|
[init]
|
|
defaultBranch = main
|
|
|
|
[column]
|
|
ui = auto
|
|
|
|
[branch]
|
|
sort = -committerdate
|
|
|
|
[tag]
|
|
sort = version:refname
|
|
|
|
[rerere]
|
|
enabled = true
|
|
autoupdate = true
|
|
|
|
[rebase]
|
|
autoSquash = true
|
|
autoStash = true
|
|
updateRefs = true
|
|
|
|
# Machine-local identity and signing config. Untracked, and included last so
|
|
# it wins over anything above. Keeps `bootstrap.sh`'s copy of this file
|
|
# non-destructive without needing to re-apply values on every shell startup.
|
|
[include]
|
|
path = ~/.gitconfig.local
|