feat(skill): 新增 git Skill - 封装常用 git 操作

- 将 status/add/commit/push/pull/branch/log/diff/stash/reset 封装为参数化动作
- 规范提交信息格式(type(scope): subject)
- 控制提交频率,按功能/任务粒度提交
- 推送前必须确认,避免频繁推送
This commit is contained in:
2026-05-23 22:38:52 +08:00
parent 62d908c1e3
commit 75312d7d1a
+173
View File
@@ -0,0 +1,173 @@
---
name: "git"
description: "Wraps common git operations as parameterized actions. Invoke when user wants to commit, push, pull, branch, or check git status."
---
# Git Skill
## 功能
将常用 git 操作封装为参数化动作,避免频繁手动提交,统一管理版本控制。
## 触发条件
- 用户要求提交代码
- 用户要求查看状态/日志/差异
- 用户要求创建/切换分支
- 用户要求拉取/推送代码
- 用户要求回退/重置
## 参数说明
| 参数 | 说明 | 示例 |
|------|------|------|
| `action` | 操作类型 | status, add, commit, push, pull, branch, log, diff, stash, reset |
| `message` | 提交信息(commit 时必填) | "feat(P01-001): 实现用户登录" |
| `branch` | 分支名(branch/push/pull 时使用) | feature/P01-001-login |
| `files` | 指定文件(add 时使用,默认全部) | ["src/login.ts", "tests/login.test.ts"] |
| `force` | 强制操作(push/reset 时使用) | true/false |
| `count` | 日志条数(log 时使用) | 10 |
## 操作类型
### 1. status - 查看状态
```bash
git status
git status -s # 简洁模式
```
**输出**:显示已修改、已暂存、未跟踪的文件
### 2. add - 添加文件
```bash
git add -A # 添加所有变更
git add <files> # 添加指定文件
git add -p # 交互式选择(逐块确认)
```
### 3. commit - 提交
**提交信息格式**(必须遵循 AGENTS.md 命名规范):
```
<type>(<scope>): <subject>
<body>
<footer>
```
| type | 说明 |
|------|------|
| feat | 新功能 |
| fix | Bug 修复 |
| docs | 文档更新 |
| style | 代码格式(不影响功能) |
| refactor | 重构 |
| test | 测试相关 |
| chore | 构建/工具链 |
**示例**
```
feat(P01-001): 实现用户登录功能
- 添加登录页面组件
- 实现微信授权登录
- 添加登录状态管理
Closes #123
```
### 4. push - 推送
```bash
git push # 推送到当前分支
git push origin <branch> # 推送到指定分支
git push -u origin <branch> # 首次推送并设置上游
git push --force # 强制推送(谨慎使用)
```
### 5. pull - 拉取
```bash
git pull # 拉取并合并
git pull --rebase # 拉取并变基
```
### 6. branch - 分支管理
```bash
git branch # 查看本地分支
git branch -a # 查看所有分支
git branch <name> # 创建分支
git checkout <name> # 切换分支
git checkout -b <name> # 创建并切换
git branch -d <name> # 删除分支
```
### 7. log - 查看日志
```bash
git log --oneline -<count> # 简洁日志
git log --graph --oneline # 图形化
git log --since="2026-05-20" # 按日期过滤
```
### 8. diff - 查看差异
```bash
git diff # 未暂存变更
git diff --cached # 已暂存变更
git diff HEAD # 所有变更
git diff <file> # 指定文件
```
### 9. stash - 暂存
```bash
git stash # 暂存当前变更
git stash list # 查看暂存列表
git stash pop # 恢复最新暂存
git stash apply <stash@{n}> # 应用指定暂存
```
### 10. reset - 重置
```bash
git reset --soft HEAD~1 # 撤销提交,保留变更
git reset --mixed HEAD~1 # 撤销提交,变更回暂存区
git reset --hard HEAD~1 # 撤销提交,丢弃变更(危险)
```
## 执行流程
### 提交流程(commit + push
1. `git status` - 查看当前状态
2. `git add -A``git add <files>` - 添加文件
3. `git diff --cached` - 确认变更内容
4. `git commit -m "<message>"` - 提交
5. `git push` - 推送(如用户要求)
### 分支创建流程
1. `git branch` - 查看当前分支
2. `git checkout -b <branch>` - 创建并切换
3. 提示用户后续提交将在此分支进行
## 注意事项
1. **提交频率**:不要每改一个文件就提交,按功能/任务粒度提交
2. **提交信息**:必须遵循 AGENTS.md 命名规范,包含项目编号和任务编号
3. **推送前确认**:推送前必须让用户确认,除非明确要求
4. **强制推送**:必须明确警告用户,确认后才能执行
5. **冲突处理**:遇到合并冲突时,先展示冲突文件,让用户决定如何处理
6. **文档同步**:代码提交后,提醒用户使用 `update-docs` Skill 同步文档
---
**Version**: 1.0
**Created**: 2026-05-23
**Based On**: ErrLens AI Programming Project
**Purpose**: 统一管理 git 操作,避免频繁提交,确保提交信息规范