[user]
  name = h7x4
  email = h7x4abk3g@protonmail.com

[core]
  excludesfile = ~/.config/git/ignore
  attributesfile = ~/.config/git/attributes

  # Treat spaces before tabs and all kinds of trailing whitespace as an error.
  # [default] trailing-space: looks for spaces at the end of a line
  # [default] space-before-tab: looks for spaces before tabs at the beginning of a line
  whitespace = space-before-tab,-indent-with-non-tab,trailing-space

  precomposeunicode = false
  untrackedCache = true

  editor = nvim
  pager = less

[alias]
  aliases = !git config --get-regexp alias | sed -re 's/alias\\.(\\S*)\\s(.*)$/\\1 = \\2/g'
  uncommit = "reset --soft HEAD^"
  rev = "checkout HEAD -- "
  revall = "checkout ."
  ; unstage = "rm --cached "
  unstage = "restore --staged "
  delete-merged = "!git branch --merged | grep -v '\\*' | xargs -n 1 git branch -d"

  mkbr = "checkout -b"
  mvbr = "branch -m"
  rmbr = "branch -d"
  rrmbr = "push origin --delete"

  graph = "log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all"
  graphv = "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"
  g = !"git graph"

# Colors

[color "branch"]
  upstream = cyan

[color]
  ui = auto

# Commands

[init]
  defaultBranch = main

[fetch]
	prune = true

[pull]
	rebase = true

[push]
  default = current

[merge]
  tool = nvimdiff
  conflictstyle = diff3
  colorMoved = zebra

[mergetool]
  keepBackup = false 
[mergetool "nvimdiff"]
  cmd = "nvim -d $BASE $LOCAL $REMOTE $MERGED -c '$wincmd w' -c 'wincmd J'"

[diff]
  mnemonicPrefix = true
  renames=true
  tool = nvimdiff

[grep]
  break = true
  heading = true
  lineNumber = true
  extendedRegexp = true

[instaweb]
  local = true
  port = 9876

# Upstream

[github]
  user = h7x4abk3g

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

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

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

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

[url "aur@aur.archlinux.org:"]
  insteadOf = "aur:"
  pushInsteadOf = "aur:"
  pushInsteadOf = "git://aur.archlinux.org/"

[url "git@gitlab.stud.idi.ntnu.no"]
  insteadOf = "ntnu:"
  pushInsteadOf = "ntnu:"
  pushInsteadOf = "git://gitlab.stud.idi.ntnu.no/"

# Misc
[web]
  browser = google-chrome-stable

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