[user]
  name = David Tomaschik
  useConfigOnly = true

[core]
  excludesfile = ~/.gitignore
  editor = vim
  whitespace = trailing-space,space-before-tab
  pager = command -v delta >/dev/null 2>&1 && delta || less -eFiJM~ -j3

[color]
  diff = auto
  status = auto

[diff]
  tool = vimdiff
  colorMoved = default

[difftool]
  prompt = false

[difftool "difftastic"]
  cmd = difft "$LOCAL" "$REMOTE"

[alias]
  st = status
  last = log -1 HEAD
  # Thanks to
  # http://durdn.com/blog/2012/11/22/must-have-git-aliases-advanced-examples/
  logs = log --pretty=format:"%C(yellow)%h%Cred%d %Creset%s%Cblue [%cn]" --decorate
  lg = log -p
  ll = log --pretty=format:"%C(yellow)%h%Cred%d %Creset%s%Cblue [%cn]" --decorate --numstat
  files = ls-files
  ls = ls-files
  lol = log --graph --pretty=format:'%C(yellow)%h%Creset %an: %s - %Creset %C(yellow)%d%Creset %Cblue(%cr)%Creset' --abbrev-commit --date=relative
  f = "!git ls-files | grep -i"
  logtree = log --graph --oneline --decorate --all

[push]
  default = current

[web]
  browser = chrome

[github]
  user = matir

# Site specific config
[url "https://github.com/"]
  insteadOf = "github:"
  insteadOf = "github://"

[url "ssh://git@github.com/"]
  pushInsteadOf = "github:"
  pushInsteadOf = "github://"
  pushInsteadOf = "https://github.com/"

[url "git://gist.github.com/"]
  insteadOf = "gist:"

[url "git@gist.github.com:"]
  pushInsteadOf = "gist:"
  pushInsteadOf = "git://gist.github.com/"

[credential]
  helper = cache --timeout=36000

[receive]
  denyCurrentBranch = updateInstead

[merge]
  tool = vimdiff
  conflictstyle = diff3

[mergetool]
  prompt = false

[pull]
  rebase = false

[init]
  defaultBranch = main

[interactive]
  diffFilter = command -v delta >/dev/null 2>&1 && delta || cat

[delta]
  navigate = true
  line-numbers = true

[filter "lfs"]
  required = true
  clean = git-lfs clean -- %f
  smudge = git-lfs smudge -- %f
  process = git-lfs filter-process

[include]
  path = ~/.gitconfig.d/aliases
  path = ~/.gitconfig.d/override
  path = ~/.gitconfig.d/local

[includeIf "gitdir/i:~/personal/"]
  path = ~/.gitconfig.d/personal

[rerere]
  enabled = true
