{ config, pkgs, ... }: { programs.git = { enable = true; aliases = { st = "status"; ci = "commit"; co = "checkout"; br = "branch"; pl = "pull"; ps = "push"; mno =" merge --no-ff"; lg = "log --color --graph --pretty=format:'%cred%h%creset -%c(yellow)%d%creset %s %cgreen(%cr)%c(bold blue)<%an>%creset' --abbrev-commit"; }; difftastic.enable = true; extraConfig = { column.ui = "auto"; branch.sort = "-committerdate"; tag.sort = "version:refname"; diff = { algorithm = "histogram"; colorMoved = "plain"; mnemonicPrefix = "true"; renames = "true"; }; pull.rebase = "true"; push = { default = "simple"; autoSetupRemote = "true"; followTags = "true"; }; fetch = { prune = "true"; pruneTags = "true"; all = "true"; }; help.autocorrect = "prompt"; commit.verbose = "true"; rerere = { enabled = "true"; autoupdate = "true"; }; rebase = { autoSquas = "true"; autoStash = "true"; updateRefs = "true"; }; merge.conflictstyle = "zdiff3"; core.editor = "nvim"; init.defaultBranch = "main"; }; ignores = [ ".direnv/" ".envrc" ]; }; }