{ pkgs, ... }: { home.packages = with pkgs; [ #git gh hub tea colordiff ]; #programs.gh.enable = true; # adds read-only config to .config #programs.git.gitui.enable = true; programs.git.enable = true; programs.git.lfs.enable = true; programs.git.delta.enable = true; programs.git.delta.options.max-line-length = 2000; #programs.git.lfs.enable = true; #programs.git.signing #programs.git.userName = "pbsds" programs.git.userName = "Peder Bergebakken Sundt"; programs.git.userEmail = "pbsds@hotmail.com"; # https://jvns.ca/blog/2024/02/16/popular-git-config-options/ programs.git.extraConfig.rerere.enabled = true; #programs.git.extraConfig.help.autocorrect = "prompt"; programs.git.extraConfig.transfer.fsckobjects = true; programs.git.extraConfig.fetch.fsckobjects = true; programs.git.extraConfig.receive.fsckObjects = true; programs.git.extraConfig.branch.sort = "-committerdate"; programs.git.extraConfig.tag.sort = "taggerdate"; programs.git.extraConfig.fetch.prune = true; programs.git.extraConfig.fetch.prunetags = true; programs.git.extraConfig.log.date = "iso"; /* programs.git.extraConfig.interactive.singleKey = true; */ programs.git.iniContent.init.defaultBranch = "main"; programs.git.ignores = [ #".envrc" ".remote.toml" ".remoteenv" "result" "result-*" "results" "results-*" "__pycache__" "*.pyc" ]; home.shellAliases = { # git gud gs = "git status"; gl = "git log --oneline --color | head -n 30"; glg = "git log --all --decorate --oneline --graph"; gpra = "git pull --rebase --autostash"; gd = "git diff"; gdwd = "git diff --word-diff"; gdwdr = "git diff --word-diff --word-diff-regex=."; gds = "git diff --staged"; gdswd = "git diff --staged --word-diff"; gdswdr = "git diff --staged --word-diff --word-diff-regex=."; gcp = "git cherry-pick"; gca = "git commit --amend"; gcara = "git commit --amend --reset-author"; gfr = "git pull --rebase"; gc = "git branch | cut -c2- | gum choose | xargs git checkout"; gbrm = "git fetch origin; git branch --merged | cut -c3- | grep -vE '^(main|master)$' | gum choose --no-limit --header 'Which branches to delete:' | xargs git branch -D"; #gb = "git blame"; #gpo = "git push origin"; #gpf = "git push --force-with-lease --force-if-includes"; }; }