516 lines
10 KiB
YAML
516 lines
10 KiB
YAML
# Git Snippets for Espanso
|
|
matches:
|
|
# === BASIC COMMANDS ===
|
|
|
|
# Git init
|
|
- trigger: "}ginit"
|
|
replace: "git init"
|
|
|
|
# Git clone
|
|
- trigger: "}gclone"
|
|
replace: "git clone $1$"
|
|
|
|
# Git status
|
|
- trigger: "}gst"
|
|
replace: "git status"
|
|
|
|
# Git add
|
|
- trigger: "}ga"
|
|
#replace: "git add $1$"
|
|
vars:
|
|
- name: "dot"
|
|
type: "choice"
|
|
params:
|
|
values:
|
|
- ". "
|
|
- ""
|
|
- name: "file"
|
|
type: "choice"
|
|
params:
|
|
values:
|
|
- "$|$"
|
|
- " <filename>"
|
|
replace: "git add {{dot}}{{file}}"
|
|
|
|
# Git commit
|
|
- trigger: "}gcs"
|
|
replace: 'git commit -m "$|$"'
|
|
|
|
# Git commit with amend
|
|
- trigger: "}gca"
|
|
replace: 'git commit --amend -m "$|$"'
|
|
|
|
# Git commit all
|
|
- trigger: "}gcaa"
|
|
replace: 'git commit -am "$|$"'
|
|
|
|
# Git push
|
|
- trigger: "}gp"
|
|
#replace: "git push $1$ $2$"
|
|
vars:
|
|
- name: "option"
|
|
type: "choice"
|
|
params:
|
|
values:
|
|
- ""
|
|
- "--force"
|
|
- "--tags"
|
|
- name: "remote_branch"
|
|
type: "choice"
|
|
params:
|
|
values:
|
|
- ""
|
|
- "origin main"
|
|
- "origin master"
|
|
- "origin HEAD"
|
|
replace: "git push {{option}} {{remote_branch}}"
|
|
|
|
# Git pull
|
|
- trigger: "}gl"
|
|
#replace: "git pull $1$ $2$"
|
|
vars:
|
|
- name: "option"
|
|
type: "choice"
|
|
params:
|
|
values:
|
|
- ""
|
|
- "--rebase"
|
|
- name: "remote_branch"
|
|
type: "choice"
|
|
params:
|
|
values:
|
|
- ""
|
|
- "origin main"
|
|
- "origin master"
|
|
replace: "git pull {{option}} {{remote_branch}}"
|
|
|
|
# Git fetch
|
|
- trigger: "}gf"
|
|
#replace: "git fetch $1$"
|
|
vars:
|
|
- name: "remote"
|
|
type: "choice"
|
|
params:
|
|
values:
|
|
- ""
|
|
- "origin"
|
|
- "--all"
|
|
replace: "git fetch {{remote}}"
|
|
|
|
# Git log
|
|
- trigger: "}glg"
|
|
replace: "git log --oneline --graph --all"
|
|
|
|
# Git diff
|
|
- trigger: "}gd"
|
|
#replace: "git diff $1$"
|
|
vars:
|
|
- name: "option"
|
|
type: "choice"
|
|
params:
|
|
values:
|
|
- ""
|
|
- "--staged"
|
|
- "HEAD~1"
|
|
replace: "git diff {{option}}"
|
|
|
|
# Git checkout
|
|
- trigger: "}gco"
|
|
#replace: "git checkout $1$"
|
|
vars:
|
|
- name: "what"
|
|
type: "choice"
|
|
params:
|
|
values:
|
|
- ""
|
|
- "-b "
|
|
- "-- "
|
|
- name: "target"
|
|
type: "choice"
|
|
params:
|
|
values:
|
|
- "$|$"
|
|
- "main"
|
|
- "master"
|
|
- "develop"
|
|
replace: "git checkout {{what}}{{target}}"
|
|
|
|
# Git branch
|
|
- trigger: "}gb"
|
|
#replace: "git branch $1$"
|
|
vars:
|
|
- name: "option"
|
|
type: "choice"
|
|
params:
|
|
values:
|
|
- ""
|
|
- "-d "
|
|
- "-D "
|
|
- "-a"
|
|
- "-r"
|
|
- name: "branch"
|
|
type: "choice"
|
|
params:
|
|
values:
|
|
- "$|$"
|
|
- "feature/"
|
|
- "bugfix/"
|
|
- "hotfix/"
|
|
replace: "git branch {{option}}{{branch}}"
|
|
|
|
# Git merge
|
|
- trigger: "}gm"
|
|
#replace: "git merge $1$"
|
|
vars:
|
|
- name: "option"
|
|
type: "choice"
|
|
params:
|
|
values:
|
|
- ""
|
|
- "--no-ff "
|
|
- "--squash "
|
|
- "--abort"
|
|
- name: "branch"
|
|
type: "choice"
|
|
params:
|
|
values:
|
|
- "$|$"
|
|
- "main"
|
|
- "master"
|
|
- "develop"
|
|
replace: "git merge {{option}}{{branch}}"
|
|
|
|
# Git rebase
|
|
- trigger: "}gr"
|
|
#replace: "git rebase $1$"
|
|
vars:
|
|
- name: "option"
|
|
type: "choice"
|
|
params:
|
|
values:
|
|
- ""
|
|
- "-i "
|
|
- "--abort"
|
|
- "--continue"
|
|
- "--skip"
|
|
- name: "target"
|
|
type: "choice"
|
|
params:
|
|
values:
|
|
- "$|$"
|
|
- "main"
|
|
- "master"
|
|
- "HEAD~3"
|
|
replace: "git rebase {{option}}{{target}}"
|
|
|
|
# Git stash
|
|
- trigger: "}gstash"
|
|
#replace: "git stash $1$"
|
|
vars:
|
|
- name: "option"
|
|
type: "choice"
|
|
params:
|
|
values:
|
|
- ""
|
|
- 'push -m "$|$"'
|
|
- "pop"
|
|
- "list"
|
|
- "drop"
|
|
replace: "git stash {{option}}"
|
|
|
|
# Git remote
|
|
- trigger: "}gr"
|
|
#replace: "git remote $1$"
|
|
vars:
|
|
- name: "option"
|
|
type: "choice"
|
|
params:
|
|
values:
|
|
- "-v"
|
|
- "add origin "
|
|
- "remove "
|
|
- name: "url"
|
|
type: "choice"
|
|
params:
|
|
values:
|
|
- "$|$"
|
|
- "https://github.com/user/repo.git"
|
|
replace: "git remote {{option}}{{url}}"
|
|
|
|
# Git reset
|
|
- trigger: "}greset"
|
|
#replace: "git reset $1$ $2$"
|
|
vars:
|
|
- name: "mode"
|
|
type: "choice"
|
|
params:
|
|
values:
|
|
- "--soft "
|
|
- "--hard "
|
|
- ""
|
|
- name: "target"
|
|
type: "choice"
|
|
params:
|
|
values:
|
|
- "HEAD~1"
|
|
- "HEAD~2"
|
|
- "HEAD~3"
|
|
- "$|$"
|
|
replace: "git reset {{mode}}{{target}}"
|
|
|
|
# Git clean
|
|
- trigger: "}gclean"
|
|
#replace: "git clean -fd $1$"
|
|
vars:
|
|
- name: "dry"
|
|
type: "choice"
|
|
params:
|
|
values:
|
|
- ""
|
|
- "-n"
|
|
replace: "git clean -fd{{dry}}"
|
|
|
|
# Git show
|
|
- trigger: "}gshow"
|
|
#replace: "git show $1$"
|
|
vars:
|
|
- name: "ref"
|
|
type: "choice"
|
|
params:
|
|
values:
|
|
- "HEAD"
|
|
- "HEAD~1"
|
|
- "$|$"
|
|
- "<commit-hash>"
|
|
replace: "git show {{ref}}"
|
|
|
|
# Git cherry-pick
|
|
- trigger: "}gcp"
|
|
#replace: "git cherry-pick $1$"
|
|
vars:
|
|
- name: "option"
|
|
type: "choice"
|
|
params:
|
|
values:
|
|
- ""
|
|
- "-x "
|
|
- "--continue"
|
|
- "--abort"
|
|
- name: "commit"
|
|
type: "choice"
|
|
params:
|
|
values:
|
|
- "$|$"
|
|
- "<commit-hash>"
|
|
- "HEAD~1"
|
|
replace: "git cherry-pick {{option}}{{commit}}"
|
|
|
|
# Git revert
|
|
- trigger: "}grev"
|
|
#replace: "git revert $1$"
|
|
vars:
|
|
- name: "commit"
|
|
type: "choice"
|
|
params:
|
|
values:
|
|
- "HEAD"
|
|
- "HEAD~1"
|
|
- "$|$"
|
|
- "<commit-hash>"
|
|
replace: "git revert {{commit}}"
|
|
|
|
# Git bisect
|
|
- trigger: "}gbisect"
|
|
#replace: "git bisect $1$"
|
|
vars:
|
|
- name: "action"
|
|
type: "choice"
|
|
params:
|
|
values:
|
|
- "start"
|
|
- "good"
|
|
- "bad"
|
|
- "reset"
|
|
- "log"
|
|
replace: "git bisect {{action}}"
|
|
|
|
# Git blame
|
|
- trigger: "}gblame"
|
|
#replace: "git blame $1$"
|
|
vars:
|
|
- name: "file"
|
|
type: "choice"
|
|
params:
|
|
values:
|
|
- "$|$"
|
|
- "<filename>"
|
|
replace: "git blame {{file}}"
|
|
|
|
# Git reflog
|
|
- trigger: "}grl"
|
|
#replace: "git reflog"
|
|
replace: "git reflog"
|
|
|
|
# Git config
|
|
- trigger: "}gconf"
|
|
#replace: "git config --global $1$ $2$"
|
|
vars:
|
|
- name: "key"
|
|
type: "choice"
|
|
params:
|
|
values:
|
|
- "user.name"
|
|
- "user.email"
|
|
- "core.editor"
|
|
- "init.defaultBranch"
|
|
- name: "value"
|
|
type: "choice"
|
|
params:
|
|
values:
|
|
- "$|$"
|
|
- "Your Name"
|
|
- "your.email@example.com"
|
|
- "vim"
|
|
- "main"
|
|
replace: 'git config --global {{key}} "{{value}}"'
|
|
|
|
# === COMMIT MESSAGE CONVENTIONS ===
|
|
# Conventional Commits
|
|
- trigger: "}gcc"
|
|
vars:
|
|
- name: "type"
|
|
type: "choice"
|
|
params:
|
|
values:
|
|
- "feat"
|
|
- "fix"
|
|
- "docs"
|
|
- "style"
|
|
- "refactor"
|
|
- "perf"
|
|
- "test"
|
|
- "chore"
|
|
- "revert"
|
|
- name: "scope"
|
|
type: "choice"
|
|
params:
|
|
values:
|
|
- ""
|
|
- "(auth)"
|
|
- "(api)"
|
|
- "(db)"
|
|
- "(ui)"
|
|
- "(cli)"
|
|
replace: "{{type}}{{scope}}: "
|
|
|
|
# Fix typo in commit
|
|
- trigger: "}gfix"
|
|
replace: "fixup! $|$"
|
|
|
|
# Squash commit
|
|
- trigger: "}gsquash"
|
|
replace: "squash! $|$"
|
|
|
|
# === BRANCH NAMING CONVENTIONS ===
|
|
|
|
# Feature branch
|
|
- trigger: "}gbf"
|
|
replace: "feature/$|$-{{mydate}}"
|
|
vars:
|
|
- name: "mydate"
|
|
type: "date"
|
|
params:
|
|
format: "%Y-%m-%d"
|
|
|
|
# Bugfix branch
|
|
- trigger: "}gbb"
|
|
replace: "bugfix/$|$-{{mydate}}"
|
|
vars:
|
|
- name: "mydate"
|
|
type: "date"
|
|
params:
|
|
format: "%Y-%m-%d"
|
|
|
|
# Hotfix branch
|
|
- trigger: "}gbh"
|
|
replace: "hotfix/$|$-{{mydate}}"
|
|
vars:
|
|
- name: "mydate"
|
|
type: "date"
|
|
params:
|
|
format: "%Y-%m-%d"
|
|
|
|
# Release branch
|
|
- trigger: "}gbr"
|
|
replace: "release/v$1$.$2$.$3$"
|
|
vars:
|
|
- name: "major"
|
|
type: "choice"
|
|
params:
|
|
values: ["0", "1", "2"]
|
|
- name: "minor"
|
|
type: "choice"
|
|
params:
|
|
values: ["0", "1", "2"]
|
|
- name: "patch"
|
|
type: "choice"
|
|
params:
|
|
values: ["0", "1", "2"]
|
|
|
|
# === TROUBLESHOOTING ===
|
|
|
|
# Discard local changes (CAREFUL!)
|
|
- trigger: "}gdc"
|
|
replace: "git checkout -- $1$"
|
|
vars:
|
|
- name: "file"
|
|
type: "choice"
|
|
params:
|
|
values:
|
|
- "."
|
|
- "$|$"
|
|
- "<filename>"
|
|
|
|
# Undo last commit (keep changes)
|
|
- trigger: "}gundo"
|
|
replace: "git reset --soft HEAD~1"
|
|
|
|
# Undo last commit (discard changes)
|
|
- trigger: "}gundohard"
|
|
replace: "git reset --hard HEAD~1"
|
|
|
|
# Remove untracked files (CAREFUL!)
|
|
- trigger: "}grmuntracked"
|
|
replace: "git clean -fd"
|
|
|
|
# See what branch you're on
|
|
- trigger: "}gcurrbranch"
|
|
replace: "git branch --show-current"
|
|
|
|
# List all branches with last commit
|
|
- trigger: "}gbrl"
|
|
replace: "git branch -vva"
|
|
|
|
# Find deleted branches
|
|
- trigger: "}gbrd"
|
|
replace: "git branch --merged | egrep -v \"(^\\*|main|master|develop)\""
|
|
|
|
# === GIT IGNORE ===
|
|
|
|
# Add to .gitignore
|
|
- trigger: "gignore"
|
|
replace: 'echo "$1$" >> .gitignore'
|
|
|
|
# Common .gitignore entries
|
|
- trigger: "ignode"
|
|
replace: "node_modules/\n.env\nnpm-debug.log"
|
|
|
|
- trigger: "igpython"
|
|
replace: "__pycache__/\n*.pyc\n.env\nvenv/\n.venv/\n*.egg-info/"
|
|
|
|
- trigger: "igidea"
|
|
replace: ".idea/\n*.iml\n.vscode/\n.DS_Store"
|
|
|
|
- trigger: "igbuild"
|
|
replace: "dist/\nbuild/\n*.o\n*.obj\n*.exe\n*.dll\n*.so\n*.dylib"
|