跳转至

Git 版本控制规范 (Git Version Control)

定位:统一所有项目的 Git 分支命名、提交规范、Skill 配置与操作流程。


分支命名

规则 说明
默认分支 所有仓库统一使用 main,禁止使用 master
功能分支 feat/<描述>,如 feat/login-page
修复分支 fix/<描述>,如 fix/memory-leak

从 master 迁移到 main

如果仓库仍在使用 master,按以下步骤迁移:

# 1. 确认当前状态(无未提交改动,本地已同步远程)
git status
git push origin master

# 2. 本地重命名分支
git branch -m master main

# 3. 推送新分支到远程
git push -u origin main

# 4. 去 GitHub Settings → General 将默认分支改为 main

# 5. 删除远程旧分支
git push origin --delete master

提交规范

格式

采用 Conventional Commits 标准:

<type>(<scope>): <subject>
Type 含义 示例
feat 新功能 feat(auth): 添加二维码登录
fix 修复 fix(crawler): 修复文章采集超时
docs 文档 docs: 更新 README 项目说明
chore 杂项 chore(deps): 更新依赖版本
refactor 重构 refactor(api): 统一响应格式
style 格式 style: 修正代码缩进
test 测试 test: 添加爬虫单元测试

规则

  • 必须使用简体中文撰写 subjecttype(scope) 保持英文,如 feat(auth): 添加二维码登录
  • scope 按模块/目录名推断,可选
  • 一次提交聚焦一个主题,避免混入无关改动

推送流程

标准操作

# 1. 查看变更
git status

# 2. 暂存所有变更
git add -A

# 3. 提交(符合规范格式)
git commit -m "feat(crawl): 新增保险产品监控任务"

# 4. 推送到远程
git push origin main

安全红线

规则 说明
禁止强制推送 绝不使用 git push --force,除非用户显式确认
禁止提交敏感文件 .env*.pem、密钥文件必须加入 .gitignore
禁止提交构建产物 node_modules/venv/__pycache__/dist/.output/
推送前确认 快速扫一眼 git status 确认无意外文件

.gitignore 模板

每个项目根目录必须具备 .gitignore,至少包含:

# Python
__pycache__/
*.py[cod]
venv/
.venv/

# Node.js
node_modules/

# 环境变量
.env
.env.local

# IDE
.idea/
.vscode/

# OS
.DS_Store
Thumbs.db

根据项目技术栈添加额外规则(如 SQLite *.db、Electron out/、Nuxt .output/ 等)。


Git Skill 统一

所有项目使用统一的 /.codebuddy/skills/git/SKILL.md统一采用纯 AI 驱动方式:Skill 触发时,CodeBuddy AI 直接读取 git diff 理解代码变更内容,生成具体的、有意义的提交信息(而非 Python 脚本的固定模板)。

不再使用 Python 脚本scripts/main.py)。过去 5 个项目依赖 Python 脚本生成提交信息,但脚本只能做正则匹配,产出的是泛泛的描述(如"修复代码问题"、"更新功能实现")。现已全部删除脚本,改为纯 AI 方式。

标准模板

---
name: git
description: Git 提交与推送。提交本地变更并推送到 GitHub。触发词:git、推送代码、push、提交
triggers:
  - "git"
  - "推送代码"
  - "push"
  - "提交"
  - "commit"
allowed-tools:
  - "Read"
  - "Write"
  - "Bash"
  - "Edit"
dependencies:
  - "git>=2.0"
---

# Git 提交与推送

## 1. 角色与目标

仓库 `<本地路径>` 的 Git 提交与推送助手。远程仓库:`<GitHub URL>`,分支:`main`。

## 2. 执行 SOP

1. `git status` 检查变更
2. 若无变更,输出"工作区干净,无需提交"并结束
3. `git add -A`,快速确认无意外文件
4. `git commit -m "<提交信息>"`(见第 3 节)
5. `git push origin main`

## 3. 提交信息规范

根据变更类型使用前缀,**subject 必须使用简体中文**:

- `feat:` —— 新功能(如 `feat: 添加二维码登录验证流程`- `fix:` —— 修复(如 `fix: 修复文章列表空指针异常`- `docs:` —— 文档变更
- `chore:` —— 杂项(配置、依赖等)
- `refactor:` —— 重构

## 4. 安全规则

- 禁止 `--force` 推送,除非用户显式确认
- 禁止提交 `node_modules/``venv/``__pycache__/``.env`- 提交前确认无意外文件

注意: Skill 文件中的 <本地路径><GitHub URL> 需替换为项目实际值。

现有项目 Skill 适配

项目 Skill 路径 状态
wechat d:/product/wechat/.codebuddy/skills/git/SKILL.md OK
AIasMe d:/product/AIasMe/.codebuddy/skills/git/SKILL.md OK
Broker d:/product/Broker/.codebuddy/skills/git/SKILL.md OK
HankKnowledge d:/myKnowledge/HankKnowledge/.codebuddy/skills/git/SKILL.md OK
Insurance d:/myKnowledge/Insurance/.codebuddy/skills/git/SKILL.md OK
mrcertain d:/myKnowledge/mrcertain/.codebuddy/skills/git/SKILL.md OK

所有项目已于 2025-05-25 统一到纯 AI 方式,Python 脚本均已删除。


常见问题

问题 解法
推送被拒绝(远程有新提交) git pull --rebase origin main 后重新 push
误提交了 .env 文件 git rm --cached .env,确认 .gitignore 包含该文件
忘记改默认分支导致删不掉 master 先去 GitHub Settings → General 改默认分支为 main
不确定当前分支 git branch --show-current

沉淀协议

触发条件 行动
新项目初始化 创建 .gitignore + 从本文件标准模板复制 SKILL.md,确认分支为 main
master → main 迁移 按本文第 2 节步骤操作
新增提交类型 更新本文 Type 表格
安全红线被触发 在 L2_sop 沉淀防御规则