mirror of
https://github.com/kogakure/dotfiles.git
synced 2026-02-03 20:25:30 +00:00
feat(nix): migrate git
This commit is contained in:
@@ -16,8 +16,6 @@
|
|||||||
~/.config/nvim: nvim
|
~/.config/nvim: nvim
|
||||||
~/.config/starship.toml: prompt/starship.toml
|
~/.config/starship.toml: prompt/starship.toml
|
||||||
~/.config/tmux/tmux-nerd-font-window-name.yml: tmux/tmux-nerd-font-window-name.yml
|
~/.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
|
~/.gitmux.conf: tmux/gitmux.conf
|
||||||
~/.tmux-cht-command: tmux/tmux-cht-command
|
~/.tmux-cht-command: tmux/tmux-cht-command
|
||||||
~/.tmux-cht-languages: tmux/tmux-cht-languages
|
~/.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
|
./ctags
|
||||||
./curl
|
./curl
|
||||||
./editorconfig
|
./editorconfig
|
||||||
|
./git
|
||||||
./gnupg
|
./gnupg
|
||||||
./hammerspoon
|
./hammerspoon
|
||||||
./karabiner
|
./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