gitlink-cli/skills/gitlink-branch-hygiene/examples/gitlink-cli-branch-hygiene.md

3.3 KiB
Raw Blame History

gitlink-branch-hygiene 使用示例

触发方式:自然语言自动匹配 日期2026-06-11 Agent 平台Codex 验证状态: 通过(命令全部真实执行,完成了分支分类和可删除候选识别)


用户输入

帮我看看 Gitlink/gitlink-cli 现在有哪些分支可以安全清理,先不要真的删除,给我一个治理计划。

Skill 触发

Agent 根据“分支”“清理”“治理计划”“先不要真的删除”等关键词,自动匹配 gitlink-branch-hygiene,并按只读优先策略执行。


执行过程摘要

Step 1读取分支列表

gitlink-cli branch +list --owner Gitlink --repo gitlink-cli --format json

得到 6 条分支:

分支 是否保护 是否有关联 PR 最近提交
master 2天前
fix/pr-review-journal-sync 9天前
test/slash-1778992192 25天前
main 25天前
test/branch-skill-1778991125 25天前
test/unprotect-1778991372 25天前

Step 2读取开放 PR避免误删协作分支

gitlink-cli pr +list --owner Gitlink --repo gitlink-cli --state open --limit 50 --format json

结果:当前仓库存在开放 PR默认分支 master 仍在被协作流程使用,不能纳入删除候选。

Step 3检查无 PR 分支与默认分支的差异

先检查 fix/pr-review-journal-sync

gitlink-cli compare +view --owner Gitlink --repo gitlink-cli --head fix/pr-review-journal-sync --base master --format json

返回:

[-2] 分支内容相同,无需创建合并请求

结论:该分支与 master 已无内容差异,可视为零差异分支。

再检查 main

gitlink-cli compare +view --owner Gitlink --repo gitlink-cli --head main --base master --format json

同样返回零差异,但由于 main 属于主分支别名,不直接列入删除候选。


生成的治理计划

# Gitlink/gitlink-cli 分支治理计划

> 生成时间2026-06-11
> 默认分支master

## 一、分支概览

- 总分支数6
- 受保护分支3
- 可直接保留5
- 可删除候选1

## 二、保留分支

| 分支 | 原因 |
|------|------|
| master | 默认分支,持续承载协作流程 |
| main | 与 master 零差异,但属于主分支别名,默认保留 |
| test/slash-1778992192 | 受保护分支,不做自动清理 |
| test/branch-skill-1778991125 | 受保护分支,不做自动清理 |
| test/unprotect-1778991372 | 受保护分支,不做自动清理 |

## 三、可删除候选

| 分支 | 原因 | 删除前最后确认 |
|------|------|----------------|
| fix/pr-review-journal-sync | 无开放 PR、未受保护、距今 9 天、与 master 零差异 | 确认没有外部流程仍引用该分支后,可执行 `branch +delete` |

验证结论

检查项 结果
Skill 自动触发
能识别默认分支和保护分支
能把 main 识别为主分支别名而非误删对象
能识别无 PR 分支
能正确把 compare 的 -2 解释为“零差异”
能输出只读的治理计划而不直接执行删除