nixpkgs/home/programs/git.nix
Daniel Siepmann 00320b8a48
Use my own git diff setup
That one includes local base and remote at top.
It turns diffthis off for the merged result to have proper code
highlighting of result.
2022-02-21 13:39:22 +01:00

118 lines
2 KiB
Nix

{ pkgs }:
{
enable = true;
userName = "Daniel Siepmann";
userEmail = "coding@daniel-siepmann.de";
signing = {
key = "15560EF4";
signByDefault = true;
};
aliases = {
c = "checkout";
ss = "show -s";
s = "status -s";
dc = "diff --cached";
sc = "switch -c";
st = "switch -t";
com = "commit";
ri = "rebase -i";
rc = "rebase --continue";
fap = "fetch --all --prune";
rh = "reset --hard";
lg = "log --graph --pretty=format:'%Cred%h%Creset %an: %s - %Creset %C(yellow)%d%Creset %Cgreen(%cr)%Creset' --abbrev-commit --date=relative";
};
ignores = [
# Some files which might be generated by system or tools
"*~"
"*.swp"
"*.swn"
"*.swo"
"*.orig"
"*.rej"
"*.pyc"
"*.bak"
"*/tags"
"/tags"
"*.~lock.*#"
# As I'm using Makefiles in many projects for my own confidence
"Makefile"
# Some generics which occur in some projects
"build/"
"logs/"
# PHP Specific
".phpunit.result.cache"
"phpcs.xml"
# TYPO3 documentation specific
"Documentation-GENERATED-temp*/"
];
extraConfig = {
advice = {
detachedHead = false;
};
branch = {
autosetuprebase = "always";
};
color = {
diff = "auto";
status = "auto";
branch = "auto";
interactive = "auto";
ui = "auto";
};
pager = {
branch = false;
show = false;
log = toString pkgs.less + "/bin/less";
diff = toString pkgs.less + "/bin/less";
};
grep = {
lineNumber = true;
};
help = {
autocorrect = 1;
};
push = {
default = "current";
gpgSign = "if-asked";
};
init = {
defaultBranch = "main";
};
diff = {
tool = toString pkgs.xxdiff + "/bin/xxdiff";
};
merge = {
ff = true;
tool = "nvimdiff4";
};
"mergetool \"nvimdiff4\"" = {
cmd = "nvim -d $LOCAL $BASE $REMOTE $MERGED -c '$wincmd w' -c 'wincmd J' -c 'diffoff'";
};
};
}