{ ... }: { programs.git = { enable = true; signing = { key = "5EFFB75F7C9B74EAA5C4637547940175096C1330"; signByDefault = true; }; userEmail = "aliceghuston@gmail.com"; userName = "ahuston-0"; aliases = { gone = '' # !git fetch -p && git for-each-ref --format '%(refname:short) %(upstream:track)' | # dump all branches # awk '$2 == "[gone]" {print $1}' | # get nuked branches # sed 's/\\x27/\\x5C\\x27/' | # remove single quotes, for xargs reasons # xargs -r git branch -D; # nuke the branches # !git for-each-ref --format '%(refname:short) %(upstream)' | # dump all older branches awk 'NF < 2 {print $1}' | # get nuked branches grep -Pv "(^origin/|^origin$|stash)" | # filter out remotes & stash sed 's/\\x27/\\x5C\\x27/' | # remove single quotes, for xargs reasons xargs -r git branch -D # nuke the branches ''; }; extraConfig = { push.autosetupremote = true; pull.rebase = true; color.ui = true; init.defaultBranch = "main"; }; }; }