{
  programs.git = {
    enable = true;
    userName = "Evan Reichard";
    aliases = {
      lg = "log --graph --abbrev-commit --decorate --date=relative --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 -n 15";
    };
    includes = [
      {
        path = "~/.config/git/work";
        condition = "gitdir:~/Development/git/work/";
      }
      {
        path = "~/.config/git/personal";
        condition = "gitdir:~/Development/git/personal/";
      }
    ];
    extraConfig = {
      core = {
        autocrlf = "input";
        safecrlf = "true";
        excludesFile = "~/.config/git/.gitignore";
      };
      merge = {
        conflictstyle = "zdiff3";
      };
      push = {
        autoSetupRemote = true;
      };
    };
  };

  # Copy Configuration
  xdg.configFile = {
    git = {
      source = ./config;
      recursive = true;
    };
  };
}