{ config, lib, pkgs, ... }: { programs.git = { enable = true; difftastic.enable = true; userName = "Anthony Cicchetti"; userEmail = "anthony@anthonycicchetti.com"; aliases = { pushall = "!git remote | xargs -L1 git push --all"; pr = "!f() { git fetch -fu $${2:-$(git remote |grep ^upstream || echo origin)} refs/pull/$1/head:pr/$1 && git checkout pr/$1; }; f"; logp = "log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short"; }; extraConfig = { core = { autocrlf = "input"; fsmonitor = true; }; checkout = { workers = 0; }; fetch = { prune = true; }; format = { pretty = "fuller"; }; log = { follow = true; }; push = { autoSetupRemote = true; }; pull = { rebase = true; }; init = { defaultBranch = "main"; }; help = { autoCorrect = "prompt"; }; rebase = { updateRefs = true; }; }; includes = [ {path = "~/.gitconfig_local";} ]; }; }