config/users/pbsds/home/profiles/git.nix

70 lines
2.0 KiB
Nix

{ pkgs, ... }:
{
home.packages = with pkgs; [
#git
#gh
hub
colordiff
];
programs.gh.enable = true;
#programs.git.gitui.enable = true;
programs.git.enable = true;
programs.git.delta.enable = true;
#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.ignores = [
"result"
"result-info"
"result-doc"
"result-man"
"result-dev"
"result-lib"
"__pycache__"
"*.pyc"
];
programs.git.iniContent.init.defaultBranch = "main";
home.shellAliases = {
# git gud
gs = "git status";
gb = "git blame";
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";
gpo = "git push origin";
gpasr = "git pull --autostash --rebase";
#gfr = "git fetch origin master && git rebase FETCH_HEAD";
gfr = "git pull --rebase";
gp = "git pull --rebase --autostash";
};
}