dotfiles/.gitconfig

157 lines
4.1 KiB
INI

[core]
excludesfile = "~/.gitignore"
pager = delta
compression = 0
looseCompression = 0
[user]
useConfigOnly = true
[column]
ui = auto
[push]
default = tracking
[branch "main"]
rebase = true
[branch "master"]
rebase = true
[alias]
b = branch -va
cl = clone --filter=blob:none
d = diff --stat -p -C --color-words
dg = diff --stat -p -C
ds = diff --staged --stat -p -C --color-words
sh = show --stat -p -C --color-words
dt = difftool
patch = !git --no-pager diff --no-color
co = checkout
st = status -sb
pullr = pull --rebase
t = tag --sort=-v:refname --format='%(color:bold italic)%(objectname:short)%(color:noitalic) %(refname:short)'
sl = branchless smartlog
sync = branchless sync
sw = branchless switch
s = branchless switch -i
new = !git fetch -u origin main:main && git branchless switch -d origin/main
gerrit-clone = "!f() { \
git clone ssh://gerrit-ssh.shelman.io:2222/$1 \
&& (cd $1 && mkdir -p `git rev-parse --git-dir`/hooks/ \
&& scp -O -P 2222 gerrit-ssh.shelman.io:hooks/commit-msg `git rev-parse --git-dir`/hooks/commit-msg \
&& chmod +x `git rev-parse --git-dir`/hooks/commit-msg \
&& git branchless init); }; f"
gerrit-switch = !(ssh `git remote get-url origin | cut -d / -f -3` gerrit query --format=JSON --current-patch-set status:open project:`git remote get-url origin | cut -d / -f 4-` \
| jq -sr 'map(select(.number) | \"\\(.number) @ \\(.currentPatchSet.ref) - \\(.subject)\")|join(\"\\n\")' \
| fzf +s -d ' ' \
| cut -d ' ' -f3 \
| xargs -n1 git fetch origin) && git checkout FETCH_HEAD
gerrit-push = !git push origin HEAD:refs/for/main
gerrit-push-wip = !git push origin HEAD:refs/for/main%wip
gerrit-push-ready = !git push origin HEAD:refs/for/main%ready
gerrit-replace = !git branchless amend && git push origin HEAD:refs/for/main
gerrit-config = !git fetch origin refs/meta/config:refs/remotes/origin/meta/config && git checkout FETCH_HEAD
gerrit-config-push = !git push origin HEAD:refs/meta/config
gp = gerrit-push
gpw = gerrit-push-wip
gpr = gerrit-push-ready
ll = log --graph --date=relative --topo-order --pretty='format:%C(yellow)%h%C(yellow)%d %Cblue%ar %Cgreenby %an%Creset -- %s'
lla = log --graph --date=relative --topo-order --pretty='format:%Cgreen%h %Cblue%ar %Credby %an%Creset -- %s' --all
guilt = "!f(){ git log --pretty='format:%an <%ae>' $@ | sort | uniq -c | sort -rn; }; f"
serve = daemon --verbose --export-all --base-path=.git --reuseaddr --strict-paths .git/
identity = "! git config user.name \"$(git config user.$1.name)\"; git config user.email \"$(git config user.$1.email)\"; git config user.signingkey \"$(git config user.$1.signingkey)\"; :"
[color]
ui = auto
branch = auto
diff = auto
status = auto
[apply]
whitespace = nowarn
[pack]
threads = 0
[blame]
date = relative
[delta]
; # syntax-theme = GitHub
file-style = bold "#ffff66" "#333300"
file-transformation = "s/$/ ══ /"
file-decoration-style=none
file-added-label = "   ══"
file-modified-label = "   ══"
file-removed-label = "   ══"
file-renamed-label = "   ══"
hunk-header-decoration-style=none
; hunk-header-decoration-style='#99eeff'
hunk-header-file-style = bold "#66ddff"
hunk-header-style = line-number bold "#99eeff" "#001133"
hunk-header-line-number-style = bold "#66ccff"
hunk-label-style = bold "#66ccff"
hunk-label = " "
line-numbers = true
max-line-distance = 0.9
[hub]
protocol = git
[http]
cookiefile = /home/dln/.gitcookies
[interactive]
diffFilter = delta --color-only --features=interactive
[credential]
helper = store
[commit]
gpgsign = false
[user]
name = Daniel Lundin
email = dln@arity.se
[init]
defaultBranch = main
; [url "git@github.com:"]
; insteadOf = https://github.com/
[lfs]
concurrenttransfers = 32
[filter "lfs"]
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f
process = git-lfs filter-process
required = true
[diff]
tool = difft
# external = difft
[difftool]
prompt = false
[difftool "difft"]
cmd = difft --display inline "$LOCAL" "$REMOTE"
[scalar]
repo = /tmp/k2/src
[maintenance]
repo = /tmp/k2/src
[fetch]
showForcedUpdates = true
[tag]
sort = -v:refname