nix/home/programs/git.nix
2022-10-05 18:17:21 -04:00

72 lines
2 KiB
Nix

{pkgs, ...}:
with pkgs; {
programs.git = {
enable = true;
package = pkgs.gitAndTools.gitFull;
aliases = {
a = "add -p";
co = "checkout";
cob = "checkout -b";
f = "fetch -p";
c = "commit";
p = "push";
ba = "branch -a";
bd = "branch -d";
bD = "branch -D";
d = "diff";
dc = "diff --cached";
ds = "diff --staged";
r = "restore";
rs = "restore --staged";
st = "status -sb";
# reset
soft = "reset --soft";
hard = "reset --hard";
s1ft = "soft HEAD~1";
h1rd = "hard HEAD~1";
# logging
lg = "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit";
plog = "log --graph --pretty='format:%C(red)%d%C(reset) %C(yellow)%h%C(reset) %ar %C(green)%aN%C(reset) %s'";
tlog = "log --stat --since='1 Day Ago' --graph --pretty=oneline --abbrev-commit --date=relative";
rank = "shortlog -sn --no-merges";
# delete merged branches
bdm = "!git branch --merged | grep -v '*' | xargs -n 1 git branch -d";
wt = "worktree";
};
delta = {
enable = true;
options.line-numbers = true;
};
extraConfig = {
core.editor = "${pkgs.neovim}/bin/nvim";
init.defaultBranch = "main";
pull.rebase = false;
# gpg.format = "ssh";
gpg."ssh".allowedSignersFile = "~/.ssh/authorized_signatures";
"credential \"https://git.thehedgehog.me\"".username = "thehedgeh0g";
credential.helper = "rbw";
};
lfs = {
enable = true;
skipSmudge = false;
};
signing = {
key = "0xFE1D8A7D620C611F";
signByDefault = true;
};
userEmail = "me@thehedgehog.me";
userName = "The Hedgehog";
};
programs.lazygit = {
enable = true;
settings = {
gui.showIcons = true;
gui.showRandomTip = false;
gui.theme.selectedLineBgColor = ["default"];
git.paging = {
pager = "delta --dark --paging=never";
colorArg = "always";
};
};
};
}