mcpField
G
git

git

github.com/laststance开发142 次安装2 周前更新
代码仓库

关于 git

面向 Git 操作的技能,可根据参数执行状态检查、提交、推送、分支等工作,也能处理自然语言任务后提交并推送。它要求提交信息遵循 Conventional Commits,并对破坏性操作设置确认要求。

主要功能

  1. 01按参数路由 Git 操作
  2. 02分析变更并生成 Conventional Commits 信息
  3. 03仅暂存指定文件
  4. 04破坏性操作前要求确认
  5. 05支持自然语言任务后提交并推送
  6. 06提供冲突处理指导

适用场景

  1. 01检查仓库状态与后续建议
  2. 02为已暂存变更生成并创建提交
  3. 03同步提交到远程仓库
  4. 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 子命令的自然语言参数,此操作均为默认选项。

  1. 执行所请求的任务(编辑/创建相关文件)。将变更限制在所请求的范围内。
  2. 执行下方的提交操作——只暂存此任务修改的文件(指定文件名,绝不使用 git add -A/.),并根据变更分析生成 Conventional Commit 提交信息。
  3. 执行下方的推送操作,将变更同步到远程。
  4. 如果无法完成任务(含糊不清、受阻或未产生文件变更),请停止并报告——不要创建空提交或臆测提交。

仍须遵守安全规则:绝不使用 --no-verify,未经确认绝不强制推送,并遵守上述安全规则中的破坏性操作确认要求。

commit & push

提交当前更改,然后推送生成的提交。

  1. 执行下方的 commit 操作。
  2. 如果因没有更改、暂存内容不明确或其他阻碍而无法完成提交操作,请报告该阻碍,且不要推送。
  3. 仅在提交成功后,才执行下方的 push 操作。
status

分析仓库状态,并提供可执行的摘要。

  1. 运行 git status(绝不使用 -uall 标志)
  2. 运行 git diff --stat,概览更改
  3. 提供:
    • 已暂存 / 未暂存 / 未跟踪文件的数量
    • 分支信息和上游跟踪状态
    • 建议的下一步操作(例如:“可以提交了”“需要暂存更改”)
commit

根据更改分析生成 Conventional Commit。

  1. 运行 git status、git diff --cached(已暂存)和 git diff(未暂存)
  2. 运行 git log --oneline -5,以匹配现有提交风格
  3. 分析更改:
    • 根据更改性质确定 type(新功能 → feat、错误修复 → fix 等)
    • 根据受影响的目录 / 文件确定 scope
    • 编写简洁的描述,重点说明“为什么”,而非“做了什么”
  4. 如果没有暂存内容,询问用户要暂存哪些内容
  5. 使用具体文件名暂存文件(避免使用 git add -A 或 git add .)
  6. 使用 HEREDOC 格式提交:
    git commit -m "$(cat <<'EOF'
    type(scope): description
    EOF
    )"
    
push

将本地提交与远程同步。

  1. 检查上游跟踪:git rev-parse --abbrev-ref --symbolic-full-name @{u}
  2. 如果没有上游,使用 -u 推送:git push -u origin <branch>
  3. 如果存在上游:git push
  4. 未经用户确认,绝不强制推送
pull

获取并整合远程更改。

  1. 执行 git pull --rebase(优先使用 rebase,而非 merge,以保持历史记录整洁)
  2. 如果发生冲突,引导用户解决
branch

创建、切换或管理分支。

  1. 创建:使用命名约定 type/description 执行 git checkout -b <name>(例如:feat/add-login、fix/header-alignment)
  2. 切换:git checkout <name>
  3. 列出:git branch -a 并显示上游状态
  4. 删除:git branch -d <name>(仅在用户确认后使用 -D)
merge

在合并过程中提供指导并协助解决冲突。

  1. 检查目标分支是否为最新:git fetch origin
  2. 执行合并:git merge <source>
  3. 如果发生冲突:
    • 列出冲突文件
    • 显示每个文件中的冲突标记
    • 引导用户选择解决方案
    • 解决后:git add <resolved-files> && git commit
stash

临时保存未提交的更改。

  1. 保存:git stash push -m "description"
  2. 列出:git stash list
  3. 应用:git stash pop(或使用 apply 保留 stash)
log

使用实用格式查看提交历史。

  1. 默认:git log --oneline -20
  2. 详细: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 中)

评论

支持 Markdown