mirror of
https://github.com/kogakure/dotfiles.git
synced 2026-02-03 12:15:29 +00:00
feat(nix): migrate git
This commit is contained in:
@@ -16,8 +16,6 @@
|
||||
~/.config/nvim: nvim
|
||||
~/.config/starship.toml: prompt/starship.toml
|
||||
~/.config/tmux/tmux-nerd-font-window-name.yml: tmux/tmux-nerd-font-window-name.yml
|
||||
~/.gitconfig: git/gitconfig
|
||||
~/.gitignore: git/gitignore
|
||||
~/.gitmux.conf: tmux/gitmux.conf
|
||||
~/.tmux-cht-command: tmux/tmux-cht-command
|
||||
~/.tmux-cht-languages: tmux/tmux-cht-languages
|
||||
|
||||
127
git/gitconfig
127
git/gitconfig
@@ -1,127 +0,0 @@
|
||||
[user]
|
||||
useConfigOnly = true
|
||||
[include]
|
||||
path = ~/.gitconfig.local
|
||||
[help]
|
||||
autocorrect = 1
|
||||
[core]
|
||||
editor = code --wait
|
||||
excludesfile = ~/.gitignore
|
||||
legacyheaders = false
|
||||
whitespace = trailing-space,space-before-tab
|
||||
pager = delta
|
||||
[interactive]
|
||||
diffFilter = delta --color-only
|
||||
[add.interactive]
|
||||
useBuildtin = false
|
||||
[delta]
|
||||
navigate = true
|
||||
light = false
|
||||
line-numbers = true
|
||||
side-by-side = true
|
||||
syntax-theme = Dracula
|
||||
[alias]
|
||||
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"
|
||||
[apply]
|
||||
whitespace = fix
|
||||
[color]
|
||||
status = auto
|
||||
diff = auto
|
||||
branch = auto
|
||||
interactive = auto
|
||||
ui = 1
|
||||
[push]
|
||||
default = upstream
|
||||
followTags = true
|
||||
autoSetupRemote = true
|
||||
[status]
|
||||
showUntrackedFiles = all
|
||||
[transfer]
|
||||
fsckobjects = true
|
||||
[i18n]
|
||||
commitencoding = UTF-8
|
||||
logoutputencoding = UTF-8
|
||||
[repack]
|
||||
usedeltabaseoffset = true
|
||||
[branch]
|
||||
autosetupmerge = true
|
||||
sort = -authordate
|
||||
[diff]
|
||||
tool = Kaleidoscope
|
||||
algorithm = patience
|
||||
colorMoved = default
|
||||
[difftool]
|
||||
prompt = false
|
||||
[difftool "Kaleidoscope"]
|
||||
cmd = ksdiff --partial-changeset --relative-path \"$MERGED\" -- \"$LOCAL\" \"$REMOTE\"
|
||||
[merge]
|
||||
conflictstyle = diff3
|
||||
tool = Kaleidoscope
|
||||
[mergetool]
|
||||
prompt = false
|
||||
keepBackup = false
|
||||
[mergetool "Kaleidoscope"]
|
||||
cmd = ksdiff --merge --output \"$MERGED\" --base \"$BASE\" -- \"$LOCAL\" --snapshot \"$REMOTE\" --snapshot
|
||||
trustexitcode = true
|
||||
trustExitCode = true
|
||||
[mergetool "nvim"]
|
||||
cmd = nvim -f -c \"Gdiffsplit!\" \"$MERGED\"
|
||||
[mergetool "code"]
|
||||
cmd = "code $MERGED"
|
||||
keepBackup = false
|
||||
trustexitcode = true
|
||||
[rebase]
|
||||
autosquash = true
|
||||
[rerere]
|
||||
enabled = 1
|
||||
[fetch]
|
||||
prune = true
|
||||
fsckobjects = false
|
||||
[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
|
||||
[pull]
|
||||
ff = only
|
||||
[commit]
|
||||
gpgsign = true
|
||||
@@ -1,13 +0,0 @@
|
||||
*.lnk
|
||||
*.pyc
|
||||
*.pyo
|
||||
*.session
|
||||
*.sw[nop]
|
||||
.BridgeSort
|
||||
.DS_Store
|
||||
._*
|
||||
.agignore
|
||||
.bundle/
|
||||
m~
|
||||
tags
|
||||
.worktrees
|
||||
@@ -13,6 +13,7 @@ in
|
||||
./ctags
|
||||
./curl
|
||||
./editorconfig
|
||||
./git
|
||||
./gnupg
|
||||
./hammerspoon
|
||||
./karabiner
|
||||
|
||||
177
nix/home/git/default.nix
Normal file
177
nix/home/git/default.nix
Normal file
@@ -0,0 +1,177 @@
|
||||
{ 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
|
||||
];
|
||||
}
|
||||
Reference in New Issue
Block a user