{ config, pkgs, ... }: { programs.git = { enable = true; settings = { alias = { st = "status"; ci = "commit"; co = "checkout"; br = "branch"; pl = "pull"; ps = "push"; sw = "switch"; 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"; cleanup = "!git fetch --prune && git branch -vv | grep ': gone]' | awk '{print $1}' | xargs git branch -D"; }; 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" ]; }; programs.difftastic = { enable = true; git.enable = true; }; programs.lazygit = { enable = true; settings = { theme.lightTheme = "true"; git = { log = { format = "%C(yellow)%h%Creset %C(bold blue)<%an>%Creset %s %Cgreen(%cr)%Creset"; graph = "true"; }; }; }; }; programs.jujutsu.enable = true; }