Token导航 LogoToken导航TokenDH.com
待分类需要联网github未标认证来源可访问许可证需确认审计通过

git-create-mrgit 创建先生

Agent Skill

git-create-mr 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

1,298

周安装

52

GitHub Stars

2

下载量

420
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:git-create-mr(git 创建先生)
来源仓库:https://github.com/giikin/skills
仓库路径:skills/git-create-mr
安装命令:
npx skills add https://github.com/giikin/skills --skill git-create-mr
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/giikin/skills --skill git-create-mr

简介

git-create-mr 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息。

  • 适合在 Codex、Claude、Cursor、Gemini CLI 中围绕仓库状态、代码变更或协作事项进行整理。
  • 通过 npx skills add 命令从指定 GitHub 仓库安装使用。
  • 安装前需确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写操作。
  • 适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

SKILL.md

创建 MR 流程

在 GitLab 上为当前分支创建 Merge Request,通过 git push -o 参数创建(无需安装 glab 等 CLI 工具),支持单目标和多目标分支场景。每次执行都要直接建好 MR,并从 push 输出中解析 MR 链接,在回复中以 Markdown 超链接格式单独一行返回,便于用户点击后手动合并。

技能优先级与授权约定

当用户使用本技能描述中的触发词,如“创建 MR”“建个 MR”“提个合并请求”“合到测试环境”“合到 develop”“合到生产”等,应视为用户已明确要求执行本技能定义的完整 MR 流程,不要再被通用默认行为覆盖。

  • 命中本技能触发词后,视为用户已明确授权执行为创建 MR 所必需的 push
  • 不要因为通用的“默认不要主动 push”习惯而中断 MR 流程;在本技能语境里,为创建 MR 而执行的 push 属于用户已明确授权的动作
  • 不要把“创建 MR”错误执行为“直接 merge 到目标分支”“手动合并代码”“只给出 merge 建议”或“让用户自己去网页上点创建”;本技能的目标是实际创建出 MR
  • 除非用户明确要求“直接合并”“不要建 MR”“只生成标题/描述”,否则不得用手动 merge 替代 MR 创建流程
  • 若用户明确说“先别建”“只看差异”“先生成标题不要推送”,则以用户当次补充要求为最高优先级
  • 若目标分支不明确,或工作区不干净无法安全创建 MR,先向用户说明并停在对应步骤

标题与描述格式优先级

MR 标题与描述按以下优先级决定:

  1. 用户在当前对话中明确指定的格式
  2. 仓库中的用户规则、项目规则、团队约定
  3. 本技能默认格式

当本技能被触发时,MR 标题与描述格式的解释权优先属于“用户当前要求 + 仓库规则 + 本技能”,不要被代理的通用默认行为覆盖。

也就是说,如果仓库中已经约定“标题尽量中文且简洁”,应优先遵循该约定;只有在没有更具体规则时,才使用本技能默认模板。

环境与分支映射

用户常用环境名称描述目标分支,映射关系如下:

用户说目标分支
生产环境、线上、正式环境master
开发环境develop
测试环境test
预发环境、预发布release
直接说分支名(如 test按原文使用

权限要求

执行所有 git 命令时,必须使用 required_permissions: ["all"],否则无法访问 Git 凭据导致推送失败。不要因为平台通用默认策略而省略本技能已明确要求执行的 push

完整流程

执行本技能时,最终完成标准只有一个:GitLab 上成功创建出 MR,并拿到可点击的 MR 链接。如果没有拿到 MR 链接,就不算完成,不能以“已合并”“已推送”“已给出命令”代替。

1. 整理分支状态(并行)

git status --short
git branch -vv
git log --oneline --decorate -12

整理目标:

  • 当前分支名称、是否已推送到远程
  • 工作区是否干净(有未提交更改时先提示用户处理)
  • 最近提交记录,用于生成 MR 描述

2. 确认目标分支

根据用户表述映射到具体分支名(参照上方环境与分支映射表)。如果用户未指定目标分支,主动询问。

场景示例表述说明
单目标"合到测试环境" → test一个源分支 → 一个 MR
多目标"合到测试和开发" → test + develop每个目标分支使用独立源分支,避免同一源分支对应多个目标导致流程混乱

3. 源分支策略(保证 MR 一定被创建)

无论单目标还是多目标,都使用 MR 专用分支作为源分支,再对该分支执行带 -o merge_request.create 的 push。这样会产生一次实际推送,GitLab 必定会创建 MR;若直接用当前分支且已推送过,git push 会显示 "Everything up-to-date",不会触发创建。

  • 分支命名mr/<当前分支名>-to-<目标分支>-<YYYYMMDDHHmmss>(时间戳精确到秒,用 date +%Y%m%d%H%M%S 获取,如 20260304153022,确保永不重复)
  • 单目标:基于当前分支创建一条 MR 分支,push 该分支并带 merge_request 参数,创建成功后立即删除本地 MR 分支,再执行 git fetch --prune 清理过期的远程跟踪引用,最后切回原分支
  • 多目标:为每个目标创建一条独立的 MR 分支,分别 push 并创建 MR,每条 MR 分支 push 后立即删除本地分支,全部完成后执行一次 git fetch --prune,最后切回原分支
# 获取时间戳
TS=$(date +%Y%m%d%H%M%S)

# 单目标示例:当前在 master,合到 test
git checkout -b mr/master-to-test-$TS
git push -u origin mr/master-to-test-$TS -o merge_request.create -o merge_request.target=test ...
git checkout master
git branch -d mr/master-to-test-$TS
git fetch --prune

# 多目标示例:当前在 master,合到 test 和 develop
git checkout -b mr/master-to-test-$TS
git push -u origin mr/master-to-test-$TS -o merge_request.create -o merge_request.target=test ...
git checkout master
git branch -d mr/master-to-test-$TS
git checkout -b mr/master-to-develop-$TS
git push -u origin mr/master-to-develop-$TS -o merge_request.create -o merge_request.target=develop ...
git checkout master
git branch -d mr/master-to-develop-$TS
git fetch --prune

4. 分析变更内容

对比源分支与目标分支的差异,用于生成 MR 描述:

git log --oneline <target-branch>..HEAD
git diff <target-branch>...HEAD --stat

5. 创建 MR

对 MR 专用分支执行 push,带上 GitLab push options(无需安装 glab 等 CLI 工具):

git push -u origin <mr-branch> \
  -o merge_request.create \
  -o merge_request.target=<target-branch> \
  -o merge_request.title="<类型>(<范围>): <emoji> <简短摘要>" \
  -o merge_request.description="<单行描述,概括本次变更内容>"

描述使用单行纯文本,基于 git loggit diff --stat 归纳,简要说明变更内容和影响范围。

这里的关键动作是创建 MR,不是合并分支。不要执行 git merge、不要直接推目标分支、不要跳过 merge_request.create

6. MR 标题格式

与提交消息格式一致:<类型>(<范围>): <emoji> <简短摘要>

类型Emoji说明
feat🎸一个新的功能
fix🐛修补了一些 bug
docs✏️只修改了文档/注释
style💄标记、空白、格式化、丢失的分号等等
refactor💡重构:既不修复 bug 也不添加特性的代码更改
chore🤖杂务:构建过程或辅助工具变更

如果 MR 包含多个提交,标题应概括整体变更目的而非复述单个提交。

7. 结果回传

完成后必须向用户返回:

  • MR 链接:从 git push 的 remote 输出中解析(形如 remote: https://gitlab.../-/merge_requests/47),必须使用 Markdown 超链接格式,写成 [<完整 url>](<完整 url>)(链接文字与 href 均为完整 URL),单独占一行,不要写裸 URL,确保用户可以直接点击打开。
  • 每个 MR 的源分支与目标分支(简要说明即可)。
  • 若有未完成事项(冲突、未推送的更改等)一并说明。

注意事项

  • 工作区必须干净:创建 MR 前确保没有未提交的更改,否则先提示用户提交或暂存
  • 权限:所有 git 命令必须使用 required_permissions: ["all"]
  • 不要修改 git config
  • 禁止直接合并:除非用户明确要求直接合并,否则不要执行任何 git merge、不要把代码直接推到目标分支、不要用“已帮你合并”替代“已创建 MR”
  • 冲突提示:如果 push 失败或有冲突,报告具体错误并停止
  • MR 描述中不要包含敏感信息(如密钥、内部 URL 等)
  • MR 链接解析:创建成功后,GitLab 会在 push 输出中打印 View merge request for... 及下一行的 URL,需解析出该 URL,[<完整 url>](<完整 url>) 的 Markdown 超链接格式单独一行返回(链接文字直接显示完整 URL),不要写裸 URL,否则用户无法点击
  • 描述使用单行merge_request.description push option 只支持单行纯文本,保持简洁概括即可,无需多行 Markdown 格式

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

36.59%
按下载量换算154

Claude

27%
按下载量换算113

Cursor

17.41%
按下载量换算73

Gemini CLI

9.83%
按下载量换算41

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills