nix/home/programs/git.nix

33 lines
737 B
Nix

{pkgs, ...}: {
programs.git = {
enable = true;
aliases = {
graph = "log --oneline --all --graph";
amend = "commit --amend --no-edit";
sdiff = "diff --staged";
t = "tag --annotate";
bclone = "!sh ${pkgs.writeShellScriptBin "bare-clone" ''
url=$1
basename=''${url##*/}
name=''${2:-''${basename%.*}}
mkdir "$name"
git clone --bare "$url" "$name/.bare" || {
rm -r "$name"
exit 1
}
cd "$name"
echo "gitdir: ./.bare" > .git
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
git fetch origin
''}/bin/bare-clone";
};
difftastic = {
enable = true;
};
};
}