[include]
  path = ~/.gitconfig.private
[init]
  defaultBranch = master
[merge]
  summary = true
  tool = vimdiff
[core]
  excludesfile = ~/.gitignore.global
  hookspath = ~/.git_hooks
  preloadindex = true
  fscache = true
  editor = vim
  # I used to have this set to true, which would result in checked out files
  # being converted to CRLF line endings and commits converting to LF. I'm
  # tired of this conversion shit though so I'm turning it off and will be
  # enforcing LF line endings via a combination of editorconfig and
  # gitattribute files on a per-project basis. This should make sure that
  # anyone contributing to my projects will be committing LF line endings.
  # The only exception is that the gitattributes files will commit batch
  # files with CRLF to avoid Windows glitches.
  #
  # I used these posts for reference:
  #   https://markentier.tech/posts/2021/10/autocrlf-true-considered-harmful/
  #   https://troyready.com/blog/git-windows-dont-convert-line-endings.html
  #
  autocrlf = false
[push]
  default = upstream
[pull]
  # Use new merge-ort strategy.
  twohead = ort
  # rebase when pulling instead of doing a default merge.
  rebase = true
[fetch]
  # Run 'git remote prune' after fetching.
  prune = true
[diff]
  algorithm = patience
[color]
  diff = auto
  status = auto
  branch = auto
  interactive = auto
  ui = true
  pager = true
[color "branch"]
  current = yellow reverse
  local   = yellow
  remote  = green
[color "diff"]
  meta = blue
  frag = magenta
  old  = red
  new  = green
[filter "lfs"]
  clean = git-lfs clean -- %f
  smudge = git-lfs smudge -- %f
  required = true
  process = git-lfs filter-process
[alias]
  start = !git init && git commit --allow-empty -m \"Initial commit\"

  ####################
  # Logging
  ####################

  # Note: There are two timestamp values in the log. The first (%ad) is the author's timestamp
  # and the second (%ci, %cs, %cr, etc) is the committer's timestamp. This lets you see the
  # original commit date and the last time the commit sha changed from a history modification
  # operation, e.g. modifying a commit in a rebase.

  # Note: If you want a grey that's slightly darker than %C(white dim) then try `%C(black bold)`.

  # Preferred style:
  # * Good for history with merge commits.
  # * Dates are YYYY-MM-DD format.
  #   * Can also use:  --date=relative and replace %ci with %cr
  #                    --date=iso and replace %ci with %ci
  lg = log --graph --date=short --pretty=format:'%C(yellow bold)%h %Creset%C(yellow dim)%an %Creset%C(yellow bold)| %Creset%C(white bold)%s %C(white dim)[%ad|%cs] %Creset%C(yellow bold)%D %Creset%C(cyan bold)%<(10,trunc)%GK%Creset'

  # Good for flat history:
  # lg = log --graph --date=short --pretty=format:'%C(yellow bold)%h %Creset%C(yellow dim)%an %Creset%C(yellow bold)| %Creset%C(white bold)%<(78,trunc)%s %C(white dim)[%ad|%cs] %Creset%C(yellow bold)%D %Creset%C(cyan bold)%<(10,trunc)%GK%Creset'

  # Alternative styles:

  # name | msg
  #lg = log --graph --date=short --pretty=format:'%C(yellow bold)%h %Creset%an %C(white dim)| %Creset%C(white bold)%s %Creset%C(white dim)[%ad|%cs] %Creset%C(yellow bold)%D %Creset%C(cyan bold)%<(10,trunc)%GK%Creset'
  #lg = log --graph --date=short --pretty=format:'%C(yellow bold)%h %Creset%an %C(yellow bold)| %Creset%C(white bold)%s %Creset%C(white dim)[%ad|%cs] %Creset%C(yellow bold)%D %Creset%C(cyan bold)%<(10,trunc)%GK%Creset'

  # name > msg
  #lg = log --graph --date=short --pretty=format:'%C(yellow bold)%h %Creset%an %C(yellow bold)>%Creset %C(white bold)%s %Creset%C(white dim)[%ad|%cs] %Creset%C(yellow bold)%D %Creset%C(cyan bold)%<(10,trunc)%GK%Creset'
  #lg = log --graph --date=short --pretty=format:'%C(yellow bold)%h %C(white dim)%an %Creset%C(yellow bold)> %Creset%C(white bold)%s %Creset%C(white dim)[%ad|%cs] %Creset%C(yellow bold)%D %Creset%C(cyan bold)%<(10,trunc)%GK%Creset'
  #lg = log --graph --date=short --pretty=format:'%C(yellow bold)%h %Creset%C(yellow dim)%an %Creset%C(yellow bold)> %Creset%C(white bold)%s %Creset%C(white dim)[%ad|%cs] %Creset%C(yellow bold)%D %Creset%C(cyan bold)%<(10,trunc)%GK%Creset'

  # <name> msg
  #lg = log --graph --date=short --pretty=format:'%C(yellow bold)%h %Creset<%an>  %Creset%C(white bold)%s %Creset%C(white dim)[%ad|%cs] %Creset%C(yellow bold)%D %Creset%C(cyan bold)%<(10,trunc)%GK%Creset'

  # [name] msg
  #lg = log --graph --date=short --pretty=format:'%C(yellow bold)%h %Creset%C(white dim)[%Creset%an%Creset%C(white dim)] %Creset%C(white bold)%s %C(white dim)[%ad|%cs] %Creset%C(yellow bold)%D %Creset%C(cyan bold)%<(10,trunc)%GK%Creset'


[rerere]
  enabled = true
[gc]
  auto = 0
[advice]
  detachedHead = false