# Git Snippets for Espanso matches: # === BASIC COMMANDS === # Git init - trigger: "}giti" replace: "git init" # Git clone - trigger: "}gitcl" replace: "git clone $1$" # Git status - trigger: "}gits" replace: "git status" # Git add - trigger: "}gita" # replace: "git add $1$" vars: - name: "dot" type: "choice" params: values: - ". " - "" - name: "file" type: "choice" params: values: - "$|$" - " " replace: "git add {{dot}}{{file}}" # Git commit - trigger: "}gitc" replace: 'git commit -m "$|$"' # Git commit with amend - trigger: "}gitcam" replace: 'git commit --amend -m "$|$"' # Git commit all - trigger: "}gitcal" replace: 'git commit -am "$|$"' # Git push - trigger: "}gitp" #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" - "origin development" replace: "git push {{option}} {{remote_branch}}" # Git pull - trigger: "}gitpl" #replace: "git pull $1$ $2$" vars: - name: "option" type: "choice" params: values: - "" - "--rebase" - name: "remote_branch" type: "choice" params: values: - "" - "origin main" - "origin master" - "origin HEAD" - "origin development" replace: "git pull {{option}} {{remote_branch}}" # Git fetch - trigger: "}gitf" # replace: "git fetch $1$" vars: - name: "remote" type: "choice" params: values: - "" - "origin" - "--all" replace: "git fetch {{remote}}" # Git log - trigger: "}gitlg" replace: "git log --oneline --graph --all" # Git diff - trigger: "}gitdf" #replace: "git diff $1$" vars: - name: "option" type: "choice" params: values: - "" - "--staged" - "HEAD~1" replace: "git diff {{option}}" # Git checkout - trigger: "}gitco" #replace: "git checkout $1$" vars: - name: "what" type: "choice" params: values: - "" - "-b " - "-- " - name: "target" type: "choice" params: values: - "$|$" - "main" - "master" - "development" replace: "git checkout {{what}}{{target}}" # Git branch - trigger: "}gitb" #replace: "git branch $1$" vars: - name: "option" type: "choice" params: values: - "" - "-d " - "-D " - "-a" - "-r" - name: "branch" type: "choice" params: values: - "$|$" - "feature/" - "bugfix/" - "hotfix/" - "chore/" - "test/" replace: "git branch {{option}}{{branch}}" # Git merge - trigger: "}gitm" #replace: "git merge $1$" vars: - name: "option" type: "choice" params: values: - "" - "--no-ff " - "--squash " - "--abort" - name: "branch" type: "choice" params: values: - "$|$" - "main" - "master" - "development" replace: "git merge {{option}}{{branch}}" # Git rebase - trigger: "}gitr" #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" - "development" - "staging" replace: "git rebase {{option}}{{target}}" # Git stash - trigger: "}gitsah" #replace: "git stash $1$" vars: - name: "option" type: "choice" params: values: - "" - 'push -m "$|$"' - "pop" - "list" - "drop" - "apply" - "--include-untracked" replace: "git stash {{option}}" # Git remote - trigger: "}gitr" #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: "}gitrst" #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: "}gitcln" #replace: "git clean -fd $1$" vars: - name: "dry" type: "choice" params: values: - "" - "-n" replace: "git clean -fd{{dry}}" # Git show - trigger: "}gitshow" #replace: "git show $1$" vars: - name: "ref" type: "choice" params: values: - "HEAD" - "HEAD~1" - "$|$" - "" replace: "git show {{ref}}" # Git cherry-pick - trigger: "}gitcp" #replace: "git cherry-pick $1$" vars: - name: "option" type: "choice" params: values: - "" - "-x " - "--continue" - "--abort" - name: "commit" type: "choice" params: values: - "$|$" - "" - "HEAD~1" replace: "git cherry-pick {{option}}{{commit}}" # Git revert - trigger: "}gitrev" #replace: "git revert $1$" vars: - name: "commit" type: "choice" params: values: - "HEAD" - "HEAD~1" - "$|$" - "" replace: "git revert {{commit}}" # Git bisect - trigger: "}gitbst" #replace: "git bisect $1$" vars: - name: "action" type: "choice" params: values: - "start" - "good" - "bad" - "reset" - "log" replace: "git bisect {{action}}" # Git blame - trigger: "}gitblame" #replace: "git blame $1$" vars: - name: "file" type: "choice" params: values: - "$|$" - "" replace: "git blame {{file}}" # Git reflog - trigger: "}gitrl" #replace: "git reflog" replace: "git reflog" # Git config - trigger: "}gitconf" #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: "}gitcc" 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: "}gitfix" replace: "fixup! $|$" # Squash commit - trigger: "}gitsquash" replace: "squash! $|$" # === BRANCH NAMING CONVENTIONS === # Release branch - trigger: "}gitbr" 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: "}gitdc" replace: "git checkout -- $1$" vars: - name: "file" type: "choice" params: values: - "." - "$|$" - "" # Undo last commit (keep changes) - trigger: "}gitundo" replace: "git reset --soft HEAD~1" # Undo last commit (discard changes) - trigger: "}gitundohard" replace: "git reset --hard HEAD~1" # Remove untracked files (CAREFUL!) - trigger: "}gitrmuntracked" replace: "git clean -fd" # See what branch you're on - trigger: "}gitcurrbranch" replace: "git branch --show-current" # List all branches with last commit - trigger: "}gitbrl" replace: "git branch -vva" # Find deleted branches - trigger: "}gitbrd" replace: "git branch --merged | egrep -v \"(^\\*|main|master|develop)\"" # === GIT IGNORE === # Add to .gitignore - trigger: "}gitignore" replace: 'echo "$1$" >> .gitignore' # Common .gitignore entries - trigger: "}gitignode" replace: "node_modules/\n.env\nnpm-debug.log" - trigger: "}gitpython" replace: "__pycache__/\n*.pyc\n.env\nvenv/\n.venv/\n*.egg-info/" - trigger: "}gitidea" replace: ".idea/\n*.iml\n.vscode/\n.DS_Store" - trigger: "}gitbuild" replace: "dist/\nbuild/\n*.o\n*.obj\n*.exe\n*.dll\n*.so\n*.dylib"