用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/tomevault-io/skills-registry --skill git-switch命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
基于 SOC 职业分类
| name | git-switch |
| description | Switch branches safely with uncommitted change handling Use when this capability is needed. |
| metadata | {"author":"dtsong"} |
--create flag is used.., shell metacharacters, or null bytes. The special value - (previous branch) is also accepted.Switch to a different branch with smart handling of uncommitted changes.
/git-switch main # Switch to main
/git-switch feat/dark-mode # Switch to feature branch
/git-switch - # Switch to previous branch
/git-switch --create feat/new # Create and switch
# Check for both staged and unstaged changes
HAS_CHANGES=false
if ! git diff --quiet || ! git diff --cached --quiet; then
HAS_CHANGES=true
fi
# Also check for untracked files
UNTRACKED=$(git ls-files --others --exclude-standard | wc -l)
If changes exist, present options:
if [ "$HAS_CHANGES" = true ]; then
echo "You have uncommitted changes:"
git status --short
# Options presented to user via AskUserQuestion:
# 1. Stash and switch (will restore after)
# 2. Carry changes to new branch
# 3. Discard changes and switch
# 4. Cancel
fi
TARGET_BRANCH="$1"
# Check local
if git show-ref --verify --quiet "refs/heads/$TARGET_BRANCH"; then
echo "Switching to local branch: $TARGET_BRANCH"
# Check remote
elif git show-ref --verify --quiet "refs/remotes/origin/$TARGET_BRANCH"; then
echo "Creating local tracking branch from origin/$TARGET_BRANCH"
git checkout -b "$TARGET_BRANCH" "origin/$TARGET_BRANCH"
exit 0
else
echo "Branch '$TARGET_BRANCH' not found locally or on origin."
echo "Did you mean to create it? Use: /git-branch $TARGET_BRANCH"
exit 1
fi
# Standard switch
git switch "$TARGET_BRANCH"
# Or if carrying changes
git switch "$TARGET_BRANCH" # Changes come along if no conflict
# Previous branch shortcut
git switch -
# Show where we are now
git status -sb
# If we stashed, offer to restore
if [ "$DID_STASH" = true ]; then
echo "Stashed changes are available. Restore with: /git-stash pop"
fi
Switched to branch: feat/dark-mode
Branch status:
Tracking: origin/feat/dark-mode
Behind: 0 commits
Ahead: 2 commits
Recent commits on this branch:
abc1234 Add theme toggle
def5678 Wire up context
Uncommitted changes detected:
M src/components/Header.tsx
A src/styles/new.css
Changes stashed automatically.
Switched to branch: main
To restore your changes:
/git-stash pop
Or keep them stashed:
/git-stash list
Switched to branch: feat/dark-mode
Uncommitted changes carried over:
M src/components/Header.tsx
These changes are now on feat/dark-mode (not committed).
Cannot switch to main!
Your local changes to these files would be overwritten:
- src/components/Header.tsx
Options:
/git-stash # Stash changes first
/commit # Commit changes first
git checkout -- <file> # Discard specific changes
| Command | Description |
|---|---|
/git-switch - | Switch to previous branch |
/git-switch main | Switch to main branch |
/git-switch --create name | Create new branch and switch |
When branch name is partial or ambiguous, show matches:
Multiple branches match 'feat/':
feat/dark-mode
feat/user-auth
feat/api-v2
Specify full name to switch.
/git-branches to see all available branches/git-stash for manual stash control/git-branch to create new branches/git-sync after switching to check for updatesConverted and distributed by TomeVault — claim your Tome and manage your conversions.