home.packages = [
pkgs.git-chglog
pkgs.git-crypt
+ pkgs.git-filter-repo
pkgs.git-quick-stats
];
programs.git = {
enable = true;
ignores = [ "*~" "*.swp" ];
- package = pkgs.gitFull;
+ package = lib.mkDefault pkgs.gitMinimal;
aliases = {
+ a = "add";
+ ap = "add -p";
authors = "shortlog -s -n";
bl = "git log -p -M --follow --stat --";
- br = "branch";
- ci = "commit";
- ca = "commit --amend -C@";
+ b = "branch";
+ c = "commit";
+ ca = "commit --amend";
+ caa = "commit --amend -C@";
+ caaa = "commit --amend -C@ -a";
+ cf = "commit --fixup";
co = "checkout";
+ d = "diff";
dc = "diff --cached";
- df = "diff";
dh = "diff --histogram";
dp = "diff --patience";
+ g = "grep";
ign = "ls-files -o -i --exclude-standard";
+ l = "log";
ll = "log --graph --decorate --pretty=oneline --abbrev-commit";
- lp = "log -p";
- s = "status -s";
+ lp = "log -p --pretty=fuller";
+ lpg = "log -p --pretty=fuller -g";
+ p = "push -v";
+ pf = "push -vf";
+ pu = "pull";
+ r = "reset";
+ rh = "reset --hard";
+ ri = "rebase -i";
+ rp = "reset -p";
+ s = "status";
spull = "!git-svn fetch && git-svn rebase";
spush = "!git-svn dcommit";
- st = "status";
- su = "status -uno";
+ ss = "status -s";
+ st = "status -uno";
+ sw = "switch";
fetch-local = "!git fetch local && git tag -d $(git describe --exact-match 2>/dev/null >/dev/null) && git fetch --tags local";
pull-local = "!git fetch-local && git checkout -B master local/master";
pull-local-old = "!git fetch-local && git checkout HEAD'^' && git branch -f master local/master && git checkout master";