From 898b52edcb47bcb3e9d6106e74ca73e74ea01e70 Mon Sep 17 00:00:00 2001 From: sillylaird Date: Thu, 3 Sep 2026 00:33:59 +0000 Subject: import live www.sillylaird.ca webroot --- .../git-workflow/references/advanced-usage.md | 393 +++++++++++++++++++++ .../references/branching-strategies.md | 175 +++++++++ .../git-workflow/references/collaboration.md | 119 +++++++ .../git-workflow/references/commit-conventions.md | 128 +++++++ .../git-workflow/references/conflict-resolution.md | 148 ++++++++ .../git-workflow/references/gitignore-guide.md | 276 +++++++++++++++ .../git-workflow/references/merge-strategies.md | 121 +++++++ 7 files changed, 1360 insertions(+) create mode 100644 .agents/skills/git-workflow/references/advanced-usage.md create mode 100644 .agents/skills/git-workflow/references/branching-strategies.md create mode 100644 .agents/skills/git-workflow/references/collaboration.md create mode 100644 .agents/skills/git-workflow/references/commit-conventions.md create mode 100644 .agents/skills/git-workflow/references/conflict-resolution.md create mode 100644 .agents/skills/git-workflow/references/gitignore-guide.md create mode 100644 .agents/skills/git-workflow/references/merge-strategies.md (limited to '.agents/skills/git-workflow/references') diff --git a/.agents/skills/git-workflow/references/advanced-usage.md b/.agents/skills/git-workflow/references/advanced-usage.md new file mode 100644 index 0000000..9e92251 --- /dev/null +++ b/.agents/skills/git-workflow/references/advanced-usage.md @@ -0,0 +1,393 @@ +# Git 高级用法 + +## 标签管理 + +### 版本号规范 + +采用 **语义化版本**(Semantic Versioning): + +``` +主版本号.次版本号.修订号[-预发布标识] +MAJOR.MINOR.PATCH[-PRERELEASE] +``` + +| 版本变化 | 说明 | 示例 | +| :------- | :----------------- | :---------------- | +| 主版本号 | 不兼容的 API 修改 | `v1.0.0 → v2.0.0` | +| 次版本号 | 向下兼容的功能新增 | `v1.0.0 → v1.1.0` | +| 修订号 | 向下兼容的问题修正 | `v1.0.0 → v1.0.1` | + +### 预发布标识 + +- `alpha` - 内测版本 +- `beta` - 公测版本 +- `rc` - 候选版本 + +``` +v1.0.0-alpha.1 # 第一个内测版本 +v1.0.0-beta.1 # 第一个公测版本 +v1.0.0-rc.1 # 第一个候选版本 +v1.0.0 # 正式版本 +``` + +### 标签操作 + +#### 创建附注标签(推荐) + +```bash +git tag -a v1.0.0 -m "release: v1.0.0 正式版本 + +主要更新: +- 新增用户管理模块 +- 新增支付功能 +- 优化查询性能" +``` + +#### 推送标签 + +```bash +# 推送单个标签 +git push origin v1.0.0 + +# 推送所有标签 +git push origin --tags +``` + +#### 查看标签 + +```bash +git tag +git tag -l "v1.*" +git show v1.0.0 +``` + +#### 删除标签 + +```bash +# 删除本地标签 +git tag -d v1.0.0 + +# 删除远程标签 +git push origin :refs/tags/v1.0.0 +``` + +## Git 性能优化 + +### 大型仓库优化 + +```bash +# 浅克隆(只获取最近的提交) +git clone --depth 1 https://github.com/repo/project.git + +# 部分克隆(按需获取) +git clone --filter=blob:none https://github.com/repo/project.git + +# 稀疏检出(只检出需要的目录) +git clone --filter=blob:none --sparse https://github.com/repo/project.git +cd project +git sparse-checkout init --cone +git sparse-checkout set src/frontend +``` + +### 清理仓库 + +```bash +# 查看仓库大小 +git count-objects -vH + +# 清理无用对象 +git gc --aggressive --prune=now + +# 清理远程已删除的分支引用 +git remote prune origin + +# 清理本地已合并的分支 +git branch --merged master | grep -v "\\*\\|master\\|develop" | xargs -n 1 git branch -d +``` + +### 提升操作速度 + +```bash +# 启用文件系统缓存 +git config --global core.fscache true + +# 启用并行获取 +git config --global fetch.parallel 4 + +# 启用未跟踪文件缓存 +git config --global core.untrackedCache true +``` + +## Git 安全规范 + +### 敏感信息保护 + +```bash +# 检查历史提交中的敏感信息 +git log -p | grep -E "(password|secret|api_key)" + +# 从历史记录中删除敏感文件 +git filter-branch --force --index-filter \ + 'git rm --cached --ignore-unmatch config/secrets.yml' \ + --prune-empty --tag-name-filter cat -- --all + +# 使用 git-secrets 预防敏感信息提交 +git secrets --install +git secrets --register-aws +``` + +### 签名验证 + +```bash +# 配置 GPG 签名 +git config --global user.signingkey YOUR_KEY_ID +git config --global commit.gpgsign true + +# 创建签名提交 +git commit -S -m "feat: 签名提交" + +# 验证签名 +git log --show-signature +``` + +### 仓库权限控制 + +| 规则 | master | develop | feature/* | +| :--------------- | :----- | :------ | :-------- | +| 禁止强制推送 | ✅ | ✅ | ❌ | +| 禁止删除 | ✅ | ✅ | ❌ | +| 必须 Code Review | ✅ | ✅ | ❌ | +| 必须通过 CI | ✅ | ✅ | ❌ | +| 必须签名提交 | ✅ | ❌ | ❌ | + +## 子模块管理 + +### 添加子模块 + +```bash +git submodule add https://github.com/user/repo.git libs/repo + +# 克隆包含子模块的项目 +git clone --recurse-submodules https://github.com/user/project.git + +# 初始化已有项目的子模块 +git submodule init +git submodule update +``` + +### 更新子模块 + +```bash +# 更新单个子模块 +cd libs/repo +git pull origin main + +# 更新所有子模块 +git submodule update --remote + +# 提交子模块更新 +cd .. +git add libs/repo +git commit -m "chore: 更新子模块版本" +``` + +### 删除子模块 + +```bash +# 删除子模块条目 +git submodule deinit -f libs/repo + +# 删除 .git/modules 中的缓存 +rm -rf .git/modules/libs/repo + +# 删除子模块目录 +git rm -f libs/repo +``` + +## 常见问题解决 + +### 1. 修改最后一次提交 + +```bash +# 修改提交内容(未推送) +git add forgotten-file.ts +git commit --amend --no-edit + +# 修改提交消息 +git commit --amend -m "新的提交消息" + +# 回滚最后一次提交,保留更改 +git reset --soft HEAD~1 +``` + +### 2. 推送被拒绝 + +```bash +# 先拉取再推送 +git pull origin master +git push origin master + +# 使用 rebase 保持历史清晰 +git pull --rebase origin master +git push origin master +``` + +### 3. 回滚到之前版本 + +```bash +# 重置到指定提交(丢弃之后的提交) +git reset --hard abc123 + +# 创建反向提交(推荐,保留历史) +git revert abc123 +``` + +### 4. 恢复误删的分支 + +```bash +# 查看操作历史 +git reflog + +# 恢复分支 +git checkout -b feature/xxx def456 +``` + +### 5. 合并多个提交 + +```bash +# 交互式 rebase(只能合并未推送的提交) +git rebase -i HEAD~5 + +# 在编辑器中将要合并的提交标记为 squash +``` + +### 6. 暂存当前工作 + +```bash +git stash save "工作进行中" +git stash list +git stash pop +git stash apply stash@{0} +``` + +### 7. 查看文件修改历史 + +```bash +git log -- # 提交历史 +git log -p -- # 详细内容 +git blame # 每行修改人 +``` + +### 8. 处理大文件 + +```bash +# 使用 Git LFS +git lfs install +git lfs track "*.zip" +git add .gitattributes +``` + +## 实用技巧 + +### 配置别名 + +```bash +git config --global alias.co checkout +git config --global alias.br branch +git config --global alias.ci commit +git config --global alias.st status +git config --global alias.lg "log --graph --oneline --all" +``` + +### 美化日志 + +```bash +# 图形化历史 +git log --graph --oneline --all + +# 搜索提交消息 +git log --grep="用户管理" + +# 搜索代码变更 +git log -S"function_name" +``` + +### 快速操作 + +```bash +# 放弃所有未提交更改 +git reset --hard HEAD + +# 放弃某个文件更改 +git checkout -- filename + +# 删除未跟踪文件 +git clean -fd + +# 批量删除已合并分支 +git branch --merged master | grep -v "\* master" | xargs -n 1 git branch -d +``` + +### 安全操作 + +```bash +# 查看将要推送的内容 +git push --dry-run + +# 安全的强制推送 +git push --force-with-lease + +# 备份分支 +git branch backup-master master +``` + +### 查找问题提交 + +```bash +# 二分查找引入Bug的提交 +git bisect start +git bisect bad # 标记当前有问题 +git bisect good v1.0.0 # 标记某版本是好的 +# Git会自动切换提交,测试后标记 good/bad +git bisect reset # 结束查找 +``` + +## CHANGELOG 管理 + +### 自动生成 CHANGELOG + +使用 `conventional-changelog` 自动生成: + +```bash +# 安装 +pnpm install -D conventional-changelog-cli + +# 生成 CHANGELOG +npx conventional-changelog -p angular -i CHANGELOG.md -s +``` + +### CHANGELOG 格式 + +```markdown +# 更新日志 + +## [1.2.0] - 2024-01-15 + +### 新增 +- 新增用户导出功能 (#123) +- 新增数据备份模块 + +### 修复 +- 修复登录验证码不刷新问题 (#456) +- 修复列表分页异常 + +### 变更 +- 优化用户查询性能 +- 调整菜单权限校验逻辑 + +### 移除 +- 移除废弃的API接口 + +## [1.1.0] - 2024-01-01 +... +``` diff --git a/.agents/skills/git-workflow/references/branching-strategies.md b/.agents/skills/git-workflow/references/branching-strategies.md new file mode 100644 index 0000000..570cf1d --- /dev/null +++ b/.agents/skills/git-workflow/references/branching-strategies.md @@ -0,0 +1,175 @@ +# 分支管理策略详解 + +## 分支类型 + +| 分支类型 | 命名规范 | 说明 | 生命周期 | +| :------- | :---------------- | :------------------------- | :------------- | +| master | `master` | 主分支,始终保持可发布状态 | 永久 | +| develop | `develop` | 开发分支,集成最新开发代码 | 永久 | +| feature | `feature/功能名` | 功能分支 | 开发完成后删除 | +| bugfix | `bugfix/问题描述` | Bug修复分支 | 修复完成后删除 | +| hotfix | `hotfix/问题描述` | 紧急修复分支 | 修复完成后删除 | +| release | `release/版本号` | 发布分支 | 发布完成后删除 | + +## 分支命名规范 + +### 功能分支 + +``` +feature/user-management # ✅ 用户管理功能 +feature/123-add-export # ✅ 关联Issue的功能 +``` + +### Bug修复分支 + +``` +bugfix/login-error # ✅ 登录错误修复 +bugfix/456-fix-timeout # ✅ 关联Issue的修复 +``` + +### 紧急修复分支 + +``` +hotfix/security-vulnerability # ✅ 安全漏洞修复 +hotfix/v1.0.1 # ✅ 版本号修复 +``` + +### 发布分支 + +``` +release/v1.0.0 # ✅ 版本发布 +release/v2.0.0-beta.1 # ✅ 预发布版本 +``` + +## 分支保护规则 + +### master 分支 + +- 禁止直接推送 +- 必须通过 Pull Request 合并 +- 必须通过 CI 检查 +- 必须至少一人 Code Review + +### develop 分支 + +- 限制直接推送 +- 建议通过 Pull Request 合并 +- 必须通过 CI 检查 + +## 分支操作命令 + +### 创建功能分支 + +```bash +git checkout develop +git pull origin develop +git checkout -b feature/user-management +``` + +### 创建Bug修复分支 + +```bash +git checkout develop +git pull origin develop +git checkout -b bugfix/login-error +``` + +### 创建紧急修复分支(从master创建) + +```bash +git checkout master +git pull origin master +git checkout -b hotfix/security-fix +``` + +### 删除分支 + +```bash +git branch -d feature/user-management # 删除本地分支 +git push origin -d feature/user-management # 删除远程分支 +``` + +## 工作流程详解 + +### 日常开发流程 + +```bash +# 1. 同步最新代码 +git checkout develop +git pull origin develop + +# 2. 创建功能分支 +git checkout -b feature/user-management + +# 3. 开发并提交 +git add . +git commit -m "feat(user): 添加用户列表页面" + +# 4. 推送到远程 +git push -u origin feature/user-management + +# 5. 创建 Pull Request 并请求 Code Review + +# 6. 合并到 develop(通过 PR) + +# 7. 删除功能分支 +git branch -d feature/user-management +git push origin -d feature/user-management +``` + +### 紧急修复流程 + +```bash +# 1. 从 master 创建修复分支 +git checkout master +git pull origin master +git checkout -b hotfix/critical-bug + +# 2. 修复并提交 +git add . +git commit -m "fix(auth): 修复认证绕过漏洞" + +# 3. 合并到 master +git checkout master +git merge --no-ff hotfix/critical-bug +git tag -a v1.0.1 -m "hotfix: 修复认证绕过漏洞" +git push origin master --tags + +# 4. 同步到 develop +git checkout develop +git merge --no-ff hotfix/critical-bug +git push origin develop + +# 5. 删除修复分支 +git branch -d hotfix/critical-bug +``` + +### 版本发布流程 + +```bash +# 1. 创建发布分支 +git checkout develop +git checkout -b release/v1.0.0 + +# 2. 更新版本号和文档 +# 修改 package.json 版本号 +# 更新 CHANGELOG.md + +# 3. 提交版本更新 +git add . +git commit -m "chore(release): 准备发布 v1.0.0" + +# 4. 合并到 master +git checkout master +git merge --no-ff release/v1.0.0 +git tag -a v1.0.0 -m "release: v1.0.0 正式版本" +git push origin master --tags + +# 5. 同步到 develop +git checkout develop +git merge --no-ff release/v1.0.0 +git push origin develop + +# 6. 删除发布分支 +git branch -d release/v1.0.0 +``` diff --git a/.agents/skills/git-workflow/references/collaboration.md b/.agents/skills/git-workflow/references/collaboration.md new file mode 100644 index 0000000..76cb4a3 --- /dev/null +++ b/.agents/skills/git-workflow/references/collaboration.md @@ -0,0 +1,119 @@ +# 多人协作规范 + +## Pull Request 规范 + +创建 PR 时应包含以下内容: + +```markdown +## 变更说明 + + +## 变更类型 +- [ ] 新功能 (feat) +- [ ] Bug 修复 (fix) +- [ ] 代码重构 (refactor) +- [ ] 文档更新 (docs) +- [ ] 其他 + +## 测试方式 + + +## 关联 Issue +Closes #xxx + +## 检查清单 +- [ ] 代码已自测 +- [ ] 文档已更新 +- [ ] 变更已添加到 CHANGELOG +``` + +## Code Review 规范 + +### 审查要点 + +#### 1. 代码质量 + +- 代码是否清晰易读 +- 命名是否规范 +- 是否有重复代码 + +#### 2. 逻辑正确性 + +- 业务逻辑是否正确 +- 边界条件是否处理 +- 异常情况是否考虑 + +#### 3. 安全性 + +- 是否有安全漏洞 +- 敏感信息是否暴露 +- 输入是否校验 + +#### 4. 性能 + +- 是否有性能问题 +- 资源是否正确释放 +- 算法复杂度是否合理 + +### 反馈格式 + +```markdown + +🔴 **必须修改**: 这里有 SQL 注入风险,需要使用参数化查询 + + +🟡 **建议修改**: 这个方法可以提取为工具函数,提高复用性 + + +💬 **讨论**: 这里是否可以考虑使用缓存? + + +👍 **赞**: 这个封装很优雅! +``` + +## 最佳实践总结 + +### 提交规范 + +✅ **推荐:** + +- 使用 Conventional Commits 规范 +- 提交消息清晰描述改动 +- 一次提交只做一件事 +- 提交前进行代码检查 + +❌ **禁止:** + +- 提交消息模糊不清 +- 一次提交多个不相关改动 +- 提交敏感信息(密码、密钥) +- 直接在主分支开发 + +### 分支管理 + +✅ **推荐:** + +- 使用 feature 分支开发 +- 定期同步主分支代码 +- 功能完成后及时删除分支 +- 使用 `--no-ff` 合并保留历史 + +❌ **禁止:** + +- 在主分支直接开发 +- 长期不合并的功能分支 +- 分支命名不规范 +- 在公共分支上 rebase + +### 代码审查 + +✅ **推荐:** + +- 所有代码通过 Pull Request +- 至少一人审核通过才能合并 +- 提供建设性反馈 + +❌ **禁止:** + +- 未经审查直接合并 +- 自己审查自己的代码 diff --git a/.agents/skills/git-workflow/references/commit-conventions.md b/.agents/skills/git-workflow/references/commit-conventions.md new file mode 100644 index 0000000..7bb06da --- /dev/null +++ b/.agents/skills/git-workflow/references/commit-conventions.md @@ -0,0 +1,128 @@ +# Commit Message 详细规范 + +## Conventional Commits 格式 + +采用 **Conventional Commits** 规范,提交消息格式如下: + +``` +(): + + + +