Skip to content
Back to skills

Git Workflow Zh

ASecurity

Git 工作流、分支策略、原子提交、语义化版本、发布打 tag 与 changelog。当用户说「分支怎么管」「主干开发还是 gitflow」「提交太大怎么拆」「commit 该怎么分」「worktree 并行开发」「怎么用 git bisect 找坏提交」「版本号该升大版本还是小版本」「发布怎么打 tag」「changelog 和 git log 有什么区别」时使用。要点:主干开发 + 1–3 天短分支;早提交勤提交;原子提交;信息写 why;关注点分离;~100 行为宜;分支命名;worktree 并行;存档点模式;变更摘要(改了什么/故意没碰什么/顾虑);提交前卫生;语义化版本与 tag 为准;面向人的 changelog。改编自 addyosmani/agent-skills 的 git-workflow-and-versioning(MIT)。

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 13, 2026
ai-agentsnodegitapi

Works with

  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 13, 2026

npx -y skills add po-et/workbuddy-skills --skill git-workflow-zh --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Git Workflow Zh?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Git Workflow Zh
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/po-et-git-workflow-zh/badge)](https://www.skillsdirectory.com/skills/po-et-git-workflow-zh)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: git-workflow-zh
description: Git 工作流、分支策略、原子提交、语义化版本、发布打 tag 与 changelog。当用户说「分支怎么管」「主干开发还是 gitflow」「提交太大怎么拆」「commit 该怎么分」「worktree 并行开发」「怎么用 git bisect 找坏提交」「版本号该升大版本还是小版本」「发布怎么打 tag」「changelog 和 git log 有什么区别」时使用。要点:主干开发 + 1–3 天短分支;早提交勤提交;原子提交;信息写 why;关注点分离;~100 行为宜;分支命名;worktree 并行;存档点模式;变更摘要(改了什么/故意没碰什么/顾虑);提交前卫生;语义化版本与 tag 为准;面向人的 changelog。改编自 addyosmani/agent-skills 的 git-workflow-and-versioning(MIT)。
author: Captain
version: 0.1.0
display_name: "Git 工作流与版本管理"
display_name_en: "Git Workflow & Versioning (zh)"
description_zh: "主干开发、短分支、原子提交、写 why 的提交信息、~100 行的改动、worktree 并行、存档点模式、变更摘要、提交前卫生、语义化版本与 tag、面向人的 changelog。"
description_en: "Trunk-based development, short branches, atomic commits, why-focused messages, ~100-line changes, worktrees, the save-point pattern, change summaries, pre-commit hygiene, semver with tags, human-facing changelogs."
examples_zh:
  - "我们团队该用主干开发还是 gitflow"
  - "工作区改了一堆,帮我拆成干净的几个提交"
  - "这次改动算破坏性变更吗,版本号怎么升"
examples_en:
  - "Should we use trunk-based development or gitflow"
  - "Split my messy working tree into clean commits"
  - "Is this change breaking, how should I bump the version"
metadata:
  { "openclaw": { "requires": { "bins": ["git"] }, "os": ["darwin", "linux", "windows"], "emoji": "🌿" } }
---

# Git 工作流与版本管理

Git 是安全网:提交是存档点,分支是沙盒,历史是文档。Agent 高速产出代码时,纪律化的版本控制是让改动可管理、可评审、可回退的机制。

## 核心原则

**主干开发(推荐)**:`main` 永远可部署;短分支 1–3 天内合回。长期分支是隐性成本——分叉、冲突、延迟集成。用 gitflow 的团队同样适用这里的提交纪律,纪律比分支模型重要。特性开关优于长分支;发布分支可接受(稳定发布时)。

1. **早提交、勤提交**:实现一片 → 测试 → 验证 → 提交 → 下一片。不要攒大改动。
2. **原子提交**:一个提交做一件逻辑上的事。
3. **信息写 why**:`feat: 注册接口增加邮箱校验` + 正文说明为什么、用了什么模式、和现有代码如何一致。类型:feat / fix / refactor / test / docs / chore(完整规范见本系列「Git 提交信息生成器」)。
4. **关注点分离**:格式化与行为变更分开;重构与功能分开——分开提交,最好分开 PR。
5. **控制大小**:~100 行易评审易回退;~300 行可接受;~1000 行要拆。

## 分支

从主干开分支;命名 `feature/…` `fix/…` `chore/…` `refactor/…`;合并后删除;未完成功能用开关而不是长分支。

## worktree 并行

`git worktree add ../project-feature-a feature/a` —— 多个 Agent 各自在独立目录、独立分支并行工作,不用切分支;实验失败直接删 worktree。

## 存档点模式

每做一处改动:测试过 → 提交 → 继续;测试挂 → 回到上一提交 → 调查。永远只丢一小步;Agent 跑偏时 `git reset --hard HEAD` 回到最近的好状态。

## 变更摘要(每次改完都给)

```
改了什么:文件 → 一句话
故意没碰的:文件 → 为什么(范围外 / 另开任务)
顾虑:严格校验会拒绝多余字段,请确认;新增依赖 X(体积)
```
「故意没碰」一节最重要——证明你守住了范围,没有顺手装修。

## 提交前卫生

看 `git diff --staged`;grep 密钥(password/secret/api_key/token);跑测试、lint、类型检查;用 lint-staged + hooks 自动化。
生成文件:项目期望的才提交(锁文件、迁移);不提交构建产物、`.env`、IDE 配置;`.gitignore` 覆盖 `node_modules/ dist/ .env *.pem`。

## 用 git 排查

`git bisect` 二分找坏提交;`git log --oneline -20`、`git diff HEAD~5..HEAD -- src/`;`git blame`;`git log --grep`。

## 发布与版本

提交是你追踪变化的方式,**版本**是消费者追踪变化的方式。一旦有人依赖你的代码,"main 最新"就不再是答案。
- **语义化版本** `MAJOR.MINOR.PATCH`:破坏性 → 大版本;向后兼容新功能 → 小版本;修复 → 补丁。数字是承诺:消费者依赖的行为变了就是大版本,不管 diff 多小(Hyrum 定律);拿不准就当破坏性。
- **tag 为准**:`git tag -a v1.4.0 -m "Release 1.4.0"` 并推送;版本号从 tag 派生,不手改散落各处。
- **面向人的 changelog**:不是 `git log`;按 新增/变更/修复/废弃/移除/安全 分组,最新在上,每条写用户影响;**在做改动的那次提交里就写条目**,别到发布时考古。破坏性变更附迁移说明与废弃窗口(见「下线与迁移」)。

## 合理化借口对照

| 借口 | 现实 |
|---|---|
| "功能做完再提交" | 一个巨型提交没法评审、排查、回退 |
| "信息无所谓" | 信息就是文档;未来的你和 Agent 要靠它 |
| "反正最后 squash" | squash 抹掉开发叙事;一开始就干净 |
| "分支麻烦" | 短分支免费;长分支才是问题 |
| "小修就升补丁" | 看消费者能观察到什么;行为变了就是大版本 |
| "changelog 就是提交日志" | 提交给你看,changelog 给消费者看,按影响筛选 |
| "发布时再写 changelog" | 到时靠回忆,一半都漏了 |

## 红灯

大量未提交改动;"fix""update""misc" 式信息;格式化混行为变更;没有 `.gitignore`;提交了 `node_modules` `.env` 产物;长期分叉的分支;对共享分支 force-push;破坏性变更只升小版本;发布无 tag 或版本手改与 tag 不一致;面向用户的发布没有 changelog。

## 验收

每次提交:一件事;信息写 why 且有类型;提交前测试通过;diff 无密钥;格式化不混行为;`.gitignore` 齐全。
每次发布:版本号与变更性质匹配;已打 tag 且版本从 tag 派生;changelog 有本版按影响分组的条目。

---
改编自 [addyosmani/agent-skills](https://github.com/addyosmani/agent-skills) 的 `git-workflow-and-versioning`(MIT)。改动见 ATTRIBUTION.md。

Files in this skill

  • ATTRIBUTION.md1.2 KB
  • SKILL.md6.6 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.