50 lines
1.2 KiB
Nix
50 lines
1.2 KiB
Nix
|
{
|
||
|
lib,
|
||
|
username,
|
||
|
useremail,
|
||
|
...
|
||
|
}: {
|
||
|
# `programs.git` will generate the config file: ~/.config/git/config
|
||
|
# to make git use this config file, `~/.gitconfig` should not exist!
|
||
|
#
|
||
|
# https://git-scm.com/docs/git-config#Documentation/git-config.txt---global
|
||
|
home.activation.removeExistingGitconfig = lib.hm.dag.entryBefore ["checkLinkTargets"] ''
|
||
|
rm -f ~/.gitconfig
|
||
|
'';
|
||
|
|
||
|
programs.git = {
|
||
|
enable = true;
|
||
|
userName = username;
|
||
|
userEmail = useremail;
|
||
|
|
||
|
extraConfig = {
|
||
|
init.defaultBranch = "master";
|
||
|
push.autoSetupRemote = true;
|
||
|
pull.rebase = true;
|
||
|
};
|
||
|
|
||
|
ignores = [
|
||
|
".DS_Store"
|
||
|
".direnv"
|
||
|
".idea"
|
||
|
];
|
||
|
|
||
|
aliases = {
|
||
|
# common aliases
|
||
|
br = "branch";
|
||
|
co = "checkout";
|
||
|
st = "status";
|
||
|
ls = "log --pretty=format:\"%C(yellow)%h%Cred%d\\\\ %Creset%s%Cblue\\\\ [%cn]\" --decorate";
|
||
|
ll = "log --pretty=format:\"%C(yellow)%h%Cred%d\\\\ %Creset%s%Cblue\\\\ [%cn]\" --decorate --numstat";
|
||
|
cm = "commit -m";
|
||
|
ca = "commit -am";
|
||
|
dc = "diff --cached";
|
||
|
amend = "commit --amend -m";
|
||
|
|
||
|
# aliases for submodule
|
||
|
update = "submodule update --init --recursive";
|
||
|
foreach = "submodule foreach";
|
||
|
};
|
||
|
};
|
||
|
}
|