Files
dotfiles/programs/git.nix

69 lines
1.7 KiB
Nix

{ pkgs, ... }:
{
programs.gitui.enable = true;
programs.git = {
enable = true;
package = pkgs.gitFull;
ignores = [
".DS_Store"
".svn"
"*~"
"*.swp"
"*.rbc"
".watsonrc"
".idea"
".vscode"
"shell.nix"
".envrc"
".direnv"
".ddev"
".claude"
"CLAUDE.local.md"
];
# see https://github.com/dandavison/delta#get-started
#delta.enable = true;
# TEMPORARY DEACTIVATED due to the error
# error[E0282]: type annotations needed for `Box<_>`
# --> /build/delta-0.17.0-vendor.tar.gz/time/src/format_description/parse/mod.rs:83:9
settings = {
alias = {
co = "checkout";
pushf = "push --force-with-lease --force-if-includes";
aimr = "log --pretty=format:'%s%n%b---'";
};
user = {
email = "pierre@front-commerce.com";
name = "Pierre Martin";
};
merge.conflictstyle = "diff3";
diff.colorMoved = "default";
merge.tool = "meld";
diff.external = "difft";
diff.algorithm = "patience";
pull.ff = "only";
credential.helper = "store";
init.defaultBranch = "main";
# see https://betterprogramming.pub/8-advanced-git-commands-university-wont-teach-you-fe63b483d34b
help.autocorrect = 1;
fetch.prune = true;
push.autoSetupRemote = true;
# see https://michaelheap.com/git-ignore-rev/
# Not activated globally because it throws errors if the file is not present.
# Enable it in a specific repository if needed.
# blame.ignoreRevsFile = ".git-blame-ignore-revs";
# see https://adamj.eu/tech/2022/10/15/how-to-rebase-stacked-git-branches/
rebase.updateRefs = true;
};
};
}