关于 git
面向 Git 操作的技能,可根据参数执行状态检查、提交、推送、分支等工作,也能处理自然语言任务后提交并推送。它要求提交信息遵循 Conventional Commits,并对破坏性操作设置确认要求。
主要功能
- 01按参数路由 Git 操作
- 02分析变更并生成 Conventional Commits 信息
- 03仅暂存指定文件
- 04破坏性操作前要求确认
- 05支持自然语言任务后提交并推送
- 06提供冲突处理指导
适用场景
- 01检查仓库状态与后续建议
- 02为已暂存变更生成并创建提交
- 03同步提交到远程仓库
- 04处理合并冲突并指导解决
MCP 相关
文档提到可将 Cursor 中的 MCP 调用映射到配置的服务标识和 call_mcp_tool;未描述 MCP 服务端功能。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ laststance/ skills --skill git安装后在 Claude Code 中输入/git确认已加载。
详细介绍
Git — 智能 Git 操作
Codex 兼容性
在 Codex 中运行此技能时,执行前请转换仅适用于 Claude Code 的原语:AskUserQuestion -> chat/request_user_input,TodoWrite -> update_plan,在可用且允许的情况下,Task/TaskCreate/TeamCreate/SendMessage -> spawn_agent/send_input/wait_agent,以及 EnterPlanMode/ExitPlanMode -> 简洁的聊天计划并明确征求批准。
将 Read/Write/Edit/Bash/WebSearch/WebFetch 映射到 Codex 文件/终端/web 工具;除非任务明确针对 Claude Code,否则将 ~/.claude/... 路径映射到 ~/.agents/... 或 ~/.codex/...。
Cursor 兼容性
在 Cursor Agent 中运行此技能时,执行前请转换仅适用于 Claude Code 的原语:AskUserQuestion -> AskQuestion;TodoWrite -> Cursor TodoWrite 或等效清单;在允许的情况下,Task/TaskCreate/TeamCreate/SendMessage/多 Agent 流程 -> Cursor Task(子 Agent)、并行 Tasks 或 run_in_background(TeamCreate/SendMessage 可能没有完全对应的功能);EnterPlanMode/ExitPlanMode -> Plan mode(SwitchMode / CreatePlan)并明确征求用户批准。
通过 Cursor Composer 或 Agent 的等效功能映射 Read/Write/Edit/StrReplace/Bash/web/search/MCP。写作 mcp__server__tool 的 MCP 名称通常映射到使用已配置服务标识符的 call_mcp_tool。除非任务明确针对 Claude Code,否则将 ~/.claude/... 映射到 ~/.cursor/skills/、.cursor/skills/ 和 .cursor/rules/。
智能 Git 工作流,自动生成 Conventional Commit 提交信息。
<essential_principles>
安全规则
- Conventional Commits:所有提交信息都必须遵循
type(scope): description格式- 类型:
feat、fix、refactor、docs、test、chore、perf、ci、build、style - 范围:可选,根据变更的文件/目录确定
- 描述:使用祈使语气、小写、不加句号
- 类型:
- 破坏性操作需要用户确认:
push --force、reset --hard、branch -D、在共享分支上执行rebase、clean -f - 绝不跳过钩子:除非用户明确要求,否则不要使用
--no-verify - 智能提交始终启用:分析暂存的变更,自动生成有意义的提交信息
</essential_principles>
参数路由
执行前检查参数:
- 参数为空或仅包含空白字符 — 执行下方的提交并推送操作。
- 参数是 Git 子命令(
status、commit、push、pull、branch、merge、stash、log)——可组合使用(commit & push)——执行下方对应的操作。 - 参数用自然语言描述任务(任何语言),例如
/git 更新 README或/git 修复标题拼写错误——执行先完成任务再交付操作:完成工作,然后提交并推送。
如果无法判断(参数既不匹配子命令,也不像是在描述任务),请询问用户一次,不要猜测其意图。
操作
先完成任务再交付
完成所描述的变更,然后一次性提交并推送。对于任何非 Git 子命令的自然语言参数,此操作均为默认选项。
- 执行所请求的任务(编辑/创建相关文件)。将变更限制在所请求的范围内。
- 执行下方的提交操作——只暂存此任务修改的文件(指定文件名,绝不使用
git add -A/.),并根据变更分析生成 Conventional Commit 提交信息。 - 执行下方的推送操作,将变更同步到远程。
- 如果无法完成任务(含糊不清、受阻或未产生文件变更),请停止并报告——不要创建空提交或臆测提交。
仍须遵守安全规则:绝不使用 --no-verify,未经确认绝不强制推送,并遵守上述安全规则中的破坏性操作确认要求。
commit & push
提交当前更改,然后推送生成的提交。
- 执行下方的 commit 操作。
- 如果因没有更改、暂存内容不明确或其他阻碍而无法完成提交操作,请报告该阻碍,且不要推送。
- 仅在提交成功后,才执行下方的 push 操作。
status
分析仓库状态,并提供可执行的摘要。
- 运行
git status(绝不使用-uall标志) - 运行
git diff --stat,概览更改 - 提供:
- 已暂存 / 未暂存 / 未跟踪文件的数量
- 分支信息和上游跟踪状态
- 建议的下一步操作(例如:“可以提交了”“需要暂存更改”)
commit
根据更改分析生成 Conventional Commit。
- 运行
git status、git diff --cached(已暂存)和git diff(未暂存) - 运行
git log --oneline -5,以匹配现有提交风格 - 分析更改:
- 根据更改性质确定
type(新功能 →feat、错误修复 →fix等) - 根据受影响的目录 / 文件确定
scope - 编写简洁的描述,重点说明“为什么”,而非“做了什么”
- 根据更改性质确定
- 如果没有暂存内容,询问用户要暂存哪些内容
- 使用具体文件名暂存文件(避免使用
git add -A或git add .) - 使用 HEREDOC 格式提交:
git commit -m "$(cat <<'EOF' type(scope): description EOF )"
push
将本地提交与远程同步。
- 检查上游跟踪:
git rev-parse --abbrev-ref --symbolic-full-name @{u} - 如果没有上游,使用
-u推送:git push -u origin <branch> - 如果存在上游:
git push - 未经用户确认,绝不强制推送
pull
获取并整合远程更改。
- 执行
git pull --rebase(优先使用 rebase,而非 merge,以保持历史记录整洁) - 如果发生冲突,引导用户解决
branch
创建、切换或管理分支。
- 创建:使用命名约定
type/description执行git checkout -b <name>(例如:feat/add-login、fix/header-alignment) - 切换:
git checkout <name> - 列出:
git branch -a并显示上游状态 - 删除:
git branch -d <name>(仅在用户确认后使用-D)
merge
在合并过程中提供指导并协助解决冲突。
- 检查目标分支是否为最新:
git fetch origin - 执行合并:
git merge <source> - 如果发生冲突:
- 列出冲突文件
- 显示每个文件中的冲突标记
- 引导用户选择解决方案
- 解决后:
git add <resolved-files> && git commit
stash
临时保存未提交的更改。
- 保存:
git stash push -m "description" - 列出:
git stash list - 应用:
git stash pop(或使用apply保留 stash)
log
使用实用格式查看提交历史。
- 默认:
git log --oneline -20 - 详细:
git log --oneline --graph --all -20
示例
/git # Default: commit current changes, then push
/git status
/git commit
/git push
/git commit & push
/git branch feat/dark-mode
/git merge main
/git stash save work in progress
/git log
/git README更新して # task-then-ship: update the README, then commit & push
/git fix the header typo # task-then-ship: make the fix, then commit & push
边界
会执行:
- 通过智能自动化执行 git 操作
- 执行自然语言任务,然后提交并推送(完成任务后交付)
- 根据更改分析生成 Conventional Commit 消息
- 提供工作流指导和最佳实践建议
- 逐步指导冲突解决
不会执行:
- 未经明确授权修改仓库配置
- 未经用户确认执行破坏性操作
- 纳入特定于项目的工作流规则(这些规则应放在 CLAUDE.md 或 AGENTS.md 中)