mirror of
https://github.com/kogakure/dotfiles.git
synced 2026-02-03 12:15:29 +00:00
178 lines
4.9 KiB
Nix
178 lines
4.9 KiB
Nix
{ pkgs, ... }:
|
|
|
|
{
|
|
programs.git = {
|
|
enable = true;
|
|
delta.enable = true;
|
|
aliases = {
|
|
st = "status";
|
|
ci = "commit";
|
|
co = "checkout";
|
|
br = "branch";
|
|
rb = "rebase";
|
|
cp = "cherry-pick";
|
|
dt = "difftool";
|
|
hist = "log --color --graph --decorate --abbrev-commit --date=short --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(blue)[%an]%Creset' --abbrev-commit --";
|
|
ls = "log --pretty=format:\"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]\" --decorate";
|
|
"local-branches" = "!git branch -vv | cut -c 3- | awk '$3 !~/\\[/ { print $1 }'";
|
|
stats = "shortlog -sn --all --no-merges";
|
|
today = "log --since=00:00:00 --all --no-merges --oneline";
|
|
prune = "fetch --prune";
|
|
undo = "reset --soft HEAD^";
|
|
"stash-all" = "stash save --include-untracked";
|
|
"app-status" = "!git remote update >/dev/null && git --no-pager log origin/production..origin/master --pretty=oneline >&2 | pbcopy";
|
|
unstage = "reset HEAD --";
|
|
merged = "branch --merged";
|
|
unmerged = "branch --no-merge";
|
|
branches = "for-each-ref --sort=-committerdate --format=\"%(color:blue)%(authordate:relative)\t%(color:red)%(authorname)\t%(color:white)%(color:bold)%(refname:short)\" refs/remotes";
|
|
ignored = "ls-files --others --directory";
|
|
# Assume workflow
|
|
assume = "update-index --assume-unchanged";
|
|
unassume = "update-index --no-assume-unchanged";
|
|
assumed = "!git ls-files -v | grep ^h | cut -c 3-";
|
|
unassumeall = "!git assumed | xargs git update-index --no-assume-unchanged";
|
|
assumeall = "!git st -s | awk {'print $2'} | xargs git assume";
|
|
# Rebase workflow
|
|
mainbranch = "!git remote show origin | sed -n '/HEAD branch/s/.*: //p'";
|
|
synced = "!git pull origin $(git mainbranch) --rebase";
|
|
update = "!git pull origin $(git rev-parse --abbrev-ref HEAD) --rebase";
|
|
squash = "!git rebase -v -i $(git mainbranch)";
|
|
publish = "push origin HEAD --force-with-lease";
|
|
pub = "publish";
|
|
# GitHub
|
|
hub = "!gh repo view --web";
|
|
};
|
|
ignores = [
|
|
"*.lnk"
|
|
"*.pyc"
|
|
"*.pyo"
|
|
"*.session"
|
|
"*.sw[nop]"
|
|
".BridgeSort"
|
|
".DS_Store"
|
|
"._*"
|
|
".agignore"
|
|
".bundle/"
|
|
"m~"
|
|
"tags"
|
|
".worktrees"
|
|
];
|
|
lfs.enable = true;
|
|
includes = [
|
|
{ path = "~/.gitconfig.local"; }
|
|
];
|
|
extraConfig = {
|
|
user = {
|
|
useConfigOnly = true;
|
|
};
|
|
core = {
|
|
editor = "code --wait";
|
|
legacyheaders = false;
|
|
};
|
|
help = {
|
|
autocorrect = 1;
|
|
};
|
|
delta = {
|
|
navigate = true;
|
|
light = false;
|
|
line-numbers = true;
|
|
side-by-side = true;
|
|
syntax-theme = "Dracula";
|
|
};
|
|
add = {
|
|
interactive = {
|
|
useBuildtin = true;
|
|
};
|
|
};
|
|
apply = {
|
|
whitespace = "fix";
|
|
};
|
|
color = {
|
|
status = "auto";
|
|
diff = "auto";
|
|
branch = "auto";
|
|
interactive = "auto";
|
|
ui = 1;
|
|
};
|
|
commit = {
|
|
gpgsign = true;
|
|
};
|
|
branch = {
|
|
autosetupmerge = true;
|
|
sort = "-authordate";
|
|
};
|
|
push = {
|
|
default = "upstream";
|
|
followTags = true;
|
|
autoSetupRemote = true;
|
|
};
|
|
pull = {
|
|
ff = "only";
|
|
};
|
|
fetch = {
|
|
prune = true;
|
|
fsckobjects = false;
|
|
};
|
|
rebase = {
|
|
autosquash = true;
|
|
};
|
|
status = {
|
|
showUntrackedFiles = "all";
|
|
};
|
|
diff = {
|
|
tool = "Kaleidoscope";
|
|
algorithm = "patience";
|
|
colorMoved = "default";
|
|
};
|
|
difftool = {
|
|
prompt = false;
|
|
Kaleidoscope.cmd = "ksdiff --partial-changeset --relative-path \"$MERGED\" -- \"$LOCAL\" \"$REMOTE\"";
|
|
};
|
|
merge = {
|
|
conflictstyle = "diff3";
|
|
tool = "Kaleidoscope";
|
|
};
|
|
mergetool = {
|
|
prompt = false;
|
|
keepBackup = false;
|
|
Kaleidoscope = {
|
|
cmd = "ksdiff --merge --output \"$MERGED\" --base \"$BASE\" -- \"$LOCAL\" --snapshot \"$REMOTE\" --snapshot";
|
|
trustexitcode = true;
|
|
trustExitCode = true;
|
|
};
|
|
nvim.cmd = "nvim -f -c \"Gdiffsplit!\" \"$MERGED\"";
|
|
code = {
|
|
cmd = "\"code $MERGED\"";
|
|
keepBackup = false;
|
|
trustexitcode = true;
|
|
};
|
|
};
|
|
rerere.enabled = true;
|
|
transfer = {
|
|
fsckObjects = true;
|
|
};
|
|
i18n = {
|
|
commitencoding = "UTF-8";
|
|
logoutputencoding = "UTF-8";
|
|
};
|
|
repack = {
|
|
usedeltabaseoffset = true;
|
|
};
|
|
"filter \"lfs\"" = {
|
|
required = true;
|
|
smudge = "git-lfs smudge -- %f";
|
|
process = "git-lfs filter-process";
|
|
clean = "git-lfs clean -- %f";
|
|
};
|
|
web.browser = "open";
|
|
hub.host = "source.xing.com";
|
|
};
|
|
};
|
|
|
|
home.packages = with pkgs; [
|
|
git
|
|
delta
|
|
gh
|
|
];
|
|
}
|