espanso/match/git.yml
2026-06-09 09:55:45 +08:00

294 lines
5.9 KiB
YAML

# Git snippets - trigger schema: }g<command>
# g = git
matches:
# === DAILY COMMANDS (shortest) ===
- trigger: "}gs"
replace: "git status"
- trigger: "}ga"
replace: "git add {{what}}"
vars:
- name: what
type: choice
params:
values: ["$|$", ".", "-p ", "-u ", "-A "]
- trigger: "}gc"
replace: 'git commit -m "$|$"'
- trigger: "}gca"
replace: 'git commit --amend -m "$|$"'
- trigger: "}gcan"
replace: "git commit --amend --no-edit"
- trigger: "}gp"
replace: "git push {{opt}}"
vars:
- name: opt
type: choice
params:
values: ["$|$", "-u origin HEAD", "--force", "--tags"]
- trigger: "}gpl"
replace: "git pull {{opt}}"
vars:
- name: opt
type: choice
params:
values: ["$|$", "--rebase", "origin main", "origin master"]
- trigger: "}gf"
replace: "git fetch {{opt}}"
vars:
- name: opt
type: choice
params:
values: ["$|$", "--all", "origin"]
- trigger: "}gcl"
replace: "git clone $|$"
# === BRANCHING ===
- trigger: "}gco"
replace: "git checkout {{opt}}"
vars:
- name: opt
type: choice
params:
values: ["$|$", "-b ", "main", "master", "-"]
- trigger: "}gb"
replace: "git branch {{opt}}"
vars:
- name: opt
type: choice
params:
values: ["$|$", "-d ", "-D ", "-a", "-r", "-m "]
- trigger: "}gm"
replace: "git merge {{opt}}"
vars:
- name: opt
type: choice
params:
values: ["$|$", "--no-ff ", "--squash ", "--abort"]
- trigger: "}gr"
replace: "git rebase {{opt}}"
vars:
- name: opt
type: choice
params:
values:
[
"$|$",
"-i HEAD~3",
"--abort",
"--continue",
"--skip",
"main",
"master",
]
- trigger: "}grem"
replace: "git remote {{opt}}"
vars:
- name: opt
type: choice
params:
values: ["-v", "add origin ", "remove ", "set-url origin "]
# === HISTORY & DIFF ===
- trigger: "}gd"
replace: "git diff {{opt}}"
vars:
- name: opt
type: choice
params:
values: ["$|$", "--staged", "HEAD~1", "--stat"]
- trigger: "}gl"
replace: "git log --oneline --graph --all"
- trigger: "}gls"
replace: "git log --oneline -10"
- trigger: "}gsh"
replace: "git show {{opt}}"
vars:
- name: opt
type: choice
params:
values: ["HEAD", "HEAD~1", "$|$"]
# === STASH ===
- trigger: "}gst"
replace: "git stash {{opt}}"
vars:
- name: opt
type: choice
params:
values: ["$|$", 'push -m "', "pop", "list", "apply", "drop", "clear"]
# === UNDO & RESET ===
- trigger: "}gu"
replace: "git reset --soft HEAD~1"
- trigger: "}guh"
replace: "git reset --hard HEAD~1"
- trigger: "}grst"
replace: "git reset {{mode}}"
vars:
- name: mode
type: choice
params:
values: ["--soft HEAD~1", "--hard HEAD~1", "HEAD ", "$|$"]
- trigger: "}gdc"
replace: "git checkout -- {{opt}}"
vars:
- name: opt
type: choice
params:
values: ["$|$", "."]
- trigger: "}gcln"
replace: "git clean -fd{{opt}}"
vars:
- name: opt
type: choice
params:
values: ["", " -n"]
- trigger: "}grm"
replace: "git clean -fd"
# === CHERRY-PICK & REVERT ===
- trigger: "}gcp"
replace: "git cherry-pick {{opt}}"
vars:
- name: opt
type: choice
params:
values: ["$|$", "-x ", "--continue", "--abort"]
- trigger: "}grv"
replace: "git revert {{opt}}"
vars:
- name: opt
type: choice
params:
values: ["HEAD", "HEAD~1", "$|$"]
# === MISC ===
- trigger: "}gbl"
replace: "git blame $|$"
- trigger: "}grl"
replace: "git reflog"
- trigger: "}gbs"
replace: "git bisect {{opt}}"
vars:
- name: opt
type: choice
params:
values: ["start", "good", "bad", "reset"]
- trigger: "}gcfg"
replace: 'git config --global {{key}} "{{val}}"'
vars:
- name: key
type: choice
params:
values:
["user.name", "user.email", "core.editor", "init.defaultBranch"]
- name: val
type: choice
params:
values: ["$|$", "vim", "main"]
# === COMMIT CONVENTIONS ===
- trigger: "}gcc"
replace: "{{type}}{{scope}}: "
vars:
- name: type
type: choice
params:
values:
[
"feat",
"fix",
"docs",
"style",
"refactor",
"perf",
"test",
"chore",
]
- name: scope
type: choice
params:
values: ["", "(api)", "(ui)", "(db)", "(auth)", "(ci)"]
- trigger: "}gfix"
replace: "fixup! $|$"
- trigger: "}gsq"
replace: "squash! $|$"
# === BRANCH NAMES ===
- trigger: "}gbr"
replace: "release/v$|$"
- trigger: "}gcb"
replace: "git branch --show-current"
- trigger: "}gbv"
replace: "git branch -vva"
- trigger: "}gbm"
replace: 'git branch --merged | egrep -v "(^\\*|main|master|develop)"'
# === GITIGNORE ===
- trigger: "}gig"
replace: 'echo "$|$" >> .gitignore'
- trigger: "}gign"
replace: |
node_modules/
.env
npm-debug.log
dist/
build/
- trigger: "}gipy"
replace: |
__pycache__/
*.pyc
.env
venv/
.venv/
*.egg-info/
- trigger: "}giid"
replace: |
.idea/
*.iml
.vscode/
.DS_Store
- trigger: "}gibd"
replace: |
dist/
build/
*.o
*.obj
*.exe
*.dll
*.so
*.dylib