{ config, pkgs, ... }: { programs.git = { enable = true; userName = "albert"; userEmail = "albert@sysctl.io"; extraConfig = { # core.askPass = "true"; credential.helper = "cache --timeout=25920000"; user.signingkey = "64F6C4EB46C4543A"; commit.gpgsign = "true"; alias.a = "add --all"; alias.ai = "add -i"; alias.ap = "apply"; alias.as = "apply --stat"; alias.ac = "apply --check"; alias.ama = "am --abort"; alias.amr = "am --resolved"; alias.ams = "am --skip"; alias.b = "branch"; alias.ba = "branch -a"; alias.bd = "branch -d"; alias.bdd = "branch -D"; alias.br = "branch -r"; alias.bc = "rev-parse --abbrev-ref HEAD"; alias.c = "commit"; alias.ca = "commit -a"; alias.cm = "commit -m"; alias.cam = "commit -am"; alias.cem = "commit --allow-empty -m"; alias.cd = "commit --amend"; alias.cad = "commit -a --amend"; alias.ced = "commit --allow-empty --amend"; alias.cl = "clone"; alias.cld = "clone --depth 1"; alias.cp = "cherry-pick"; alias.cpa = "cherry-pick --abort"; alias.cpc = "cherry-pick --continue"; alias.d = "diff"; alias.dp = "diff --patience"; alias.dc = "diff --cached"; alias.dk = "diff --check"; alias.dck = "diff --cached --check"; alias.dt = "difftool"; alias.dct = "difftool --cached"; alias.f = "fetch"; alias.fo = "fetch origin"; alias.fu = "fetch upstream"; alias.fp = "format-patch"; alias.fk = "fsck"; alias.g = "grep -p"; alias.l = "log --oneline"; alias.lg = "log --oneline --graph --decorate"; alias.ls = "ls-files"; alias.lsf = "!git ls-files | grep -i"; alias.m = "merge"; alias.ma = "merge --abort"; alias.mc = "merge --continue"; alias.ms = "merge --skip"; alias.o = "checkout"; alias.ob = "checkout -b"; alias.pr = "prune -v"; alias.ps = "push"; alias.psf = "push -f"; alias.psu = "push -u"; alias.pst = "push --tags"; alias.pso = "push origin"; alias.psao = "push --all origin"; alias.psfo = "push -f origin"; alias.psuo = "push -u origin"; alias.psom = "push origin master"; alias.psaom = "push --all origin master"; alias.psfom = "push -f origin master"; alias.psuom = "push -u origin master"; alias.psoc = "!git push origin $(git bc)"; alias.psaoc = "!git push --all origin $(git bc)"; alias.psfoc = "!git push -f origin $(git bc)"; alias.psuoc = "!git push -u origin $(git bc)"; alias.psdc = "!git push origin :$(git bc)"; alias.pl = "pull"; alias.pb = "pull --rebase"; alias.plo = "pull origin"; alias.pbo = "pull --rebase origin"; alias.plom = "pull origin master"; alias.ploc = "!git pull origin $(git bc)"; alias.pbom = "pull --rebase origin master"; alias.pboc = "!git pull --rebase origin $(git bc)"; alias.plu = "pull upstream"; alias.plum = "pull upstream master"; alias.pluc = "!git pull upstream $(git bc)"; alias.pbum = "pull --rebase upstream master"; alias.pbuc = "!git pull --rebase upstream $(git bc)"; alias.rb = "rebase"; alias.rba = "rebase --abort"; alias.rbc = "rebase --continue"; alias.rbi = "rebase --interactive"; alias.rbs = "rebase --skip"; alias.re = "reset"; alias.rh = "reset HEAD"; alias.reh = "reset --hard"; alias.rem = "reset --mixed"; alias.res = "reset --soft"; alias.rehh = "reset --hard HEAD"; alias.remh = "reset --mixed HEAD"; alias.resh = "reset --soft HEAD"; alias.r = "remote"; alias.ra = "remote add"; alias.rr = "remote rm"; alias.rv = "remote -v"; alias.rn = "remote rename"; alias.rp = "remote prune"; alias.rs = "remote show"; alias.rao = "remote add origin"; alias.rau = "remote add upstream"; alias.rro = "remote remove origin"; alias.rru = "remote remove upstream"; alias.rso = "remote show origin"; alias.rsu = "remote show upstream"; alias.rpo = "remote prune origin"; alias.rpu = "remote prune upstream"; alias.rmf = "rm -f"; alias.rmrf = "rm -r -f"; alias.s = "status"; alias.sb = "status -s -b"; alias.sa = "stash apply"; alias.sc = "stash clear"; alias.sd = "stash drop"; alias.sl = "stash list"; alias.sp = "stash pop"; alias.ss = "stash save"; alias.sw = "stash show"; alias.t = "tag"; alias.td = "tag -d"; alias.w = "show"; alias.wp = "show -p"; alias.wr = "show -p --no-color"; }; }; }