{ config, pkgs, ... }: {
  programs.git = {
    enable = true;
    userName  = "albert";
    userEmail = "albert@sysctl.io";
    extraConfig = {
      core.askPass = "false";
      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";
    };
  };
}