-
Notifications
You must be signed in to change notification settings - Fork 0
Skills Git Workflow
licco edited this page Aug 2, 2026
·
2 revisions
这个技能指导你使用规范的 Git 分支管理流程进行开发,确保代码质量和版本控制的规范性。
| 分支类型 | 命名规范 | 用途 | 生命周期 |
|---|---|---|---|
| 主分支 |
master / main
|
生产环境代码 | 永久 |
| 特性分支 | feat/xxx |
新功能开发 | 功能完成后合并 |
| 修复分支 | fix/xxx |
Bug 修复 | 修复后合并 |
| 文档分支 | docs/xxx |
文档更新 | 完成后合并 |
- ✅
master分支受保护 - ✅ 所有改动必须通过 PR 合并
- ✅ PR 需要 Code Review
- ✅ 通过 CI/CD 检查
git checkout mastergit pull github master注意: 使用 github 远程仓库,不是 origin
git checkout -b feat/feature-name命名规范:
-
feat/add-new-feature- 新功能 -
feat/security-enhancements- 安全增强 -
feat/performance-improvement- 性能优化
在特性分支上进行开发。
git add <files>
git commit -m "feat: add new feature
Detailed description of the feature.
- Feature 1
- Feature 2
- Feature 3"提交信息规范:
-
feat:- 新功能 -
fix:- Bug 修复 -
docs:- 文档更新 -
style:- 代码格式 -
refactor:- 重构 -
test:- 测试 -
chore:- 构建/工具
如果开发周期较长:
git fetch github master
git rebase github/mastergit checkout mastergit pull github mastergit push -u github feat/feature-namegh pr create \
--base master \
--head feat/feature-name \
--title "feat: Add new feature" \
--body "## 🎯 Description
Description of the feature.
## ✅ Checklist
- [ ] Code reviewed
- [ ] Tests added
- [ ] Documentation updated
## 🔗 Related Issues
Closes #123"- 访问 GitHub 仓库
- 点击 "Pull requests"
- 点击 "New pull request"
- 选择:
- base:
master - compare:
feat/feature-name
- base:
- 填写 PR 标题和描述
- 点击 "Create pull request"
- 通知团队成员 Review
- 回复 Review 意见
- 根据意见修改代码
# 在特性分支上修改
git checkout feat/feature-name
# 修改代码
# ...
# 提交修改
git add <files>
git commit -m "fix: address review comments"
# 推送
git push github feat/feature-name方式 1: Squash and Merge (推荐)
- 将所有提交压缩为一个
- 保持 master 历史清晰
方式 2: Merge
- 保留所有提交历史
- 适合重要的功能分支
方式 3: Rebase and Merge
- 线性历史
- 不保留合并提交
合并后删除远程分支:
git push github --delete feat/feature-namegit checkout mastergit pull github mastergit branch -d feat/feature-name如果分支未完全合并:
git branch -D feat/feature-name打 tag 并 push 即可触发全自动发布:
git tag -a v1.1.0 -m "v1.1.0: MCP 工具精简为 7 个"
git push github v1.1.0
↓
auto-release.yml 检测到 tag push
↓
自动创建 GitHub Release
↓
release:published 事件触发
↙ ↘
pypi.yml mcp-registry.yml
| ✅ DO | ❌ DON'T |
|---|---|
git push github v1.1.0 — 只推指定 tag |
git push github --tags — 推送所有历史 tag |
| 先 push master,再 push tag | 只打 tag 不 push(不触发 Actions) |
git tag -a v1.1.0 -m "..." — 带注释 |
git tag v1.1.0 — 轻量标签(无注释) |
requires-python = ">=3.10" — 不设上限 |
requires-python = ">=3.10,<3.14" — 上限阻断未来版本 |
# ❌ 危险 — 所有本地 tag(包括旧 tag、测试 tag)都会推上去
git push github --tags
# ✅ 安全 — 只推送指定 tag
git push github v1.1.0如果本地有遗留的废弃 tag(如 test-tag、v0.1-dev),--tags 会全部推上去,可能意外触发多个 Release。
如果之前手动打 tag 忘了建 Release,不需要重新打 tag,直接去 GitHub Releases 手动选择已有 tag 创建即可。
# 切换到 master
git checkout master
# 拉取最新代码
git pull github master
# 创建特性分支
git checkout -b feat/security-enhancements# 编写代码
# ...
# 提交代码
git add ssh_mcp/security.py
git commit -m "feat: add multi-level security configuration
- Add SecurityLevel enum (STRICT, BALANCED, RELAXED)
- Add environment variable configuration
- Add user-friendly error messages
- Add comprehensive documentation"# 切换回 master
git checkout master
# 拉取最新代码
git pull github master
# 推送特性分支
git push -u github feat/security-enhancementsgh pr create \
--base master \
--head feat/security-enhancements \
--title "feat: Add flexible security configuration" \
--body "## 🎯 New Features
- Multi-level security strategy (STRICT/BALANCED/RELAXED)
- Environment variable configuration
- User-friendly error messages
## ✅ Testing
- [x] All tests passed
- [x] Documentation updated
- [x] Security review completed"# 切换回 master
git checkout master
# 拉取最新代码
git pull github master
# 删除本地分支
git branch -d feat/security-enhancements添加到 ~/.gitconfig:
[alias]
# 分支管理
br = branch
co = checkout
st = status
ci = commit
df = diff
# 拉取和推送
pl = pull
ps = push
plgm = pull github master
psgm = push github master
# 日志
lg = log --oneline --graph --decorate
last = log -1 HEAD
# 清理
cleanup = !git branch -merged | grep -v '\\*' | xargs -n 1 git branch -dgit plgm # git pull github master
git psgm # git push github master
git lg # 查看提交历史master: o---o---o---o---o---o---o
\ \ /
feat/A: o---o---o |
\ \
feat/B: o---o---o---o---o
git branch -r# 本地
git branch --merged | grep -v '\*' | xargs git branch -d
# 远程
git push github --delete feat/old-feature# 1. 拉取最新代码
git checkout master
git pull github master
# 2. 切换到特性分支
git checkout feat/feature-name
# 3. 合并 master
git merge master
# 4. 解决冲突
# 编辑冲突文件
# 5. 提交解决
git add <files>
git commit -m "fix: resolve merge conflicts"
# 6. 推送
git push github feat/feature-name撤销未推送的提交:
git reset --soft HEAD~1 # 保留更改
git reset --hard HEAD~1 # 丢弃更改撤销已推送的提交:
git revert <commit-hash>
git push github master- ✅
feat/add-login- 清晰描述功能 - ✅
fix/resolve-bug-123- 关联 Issue - ❌
test- 太模糊 - ❌
my-feature- 不清晰
- ✅
feat: add user authentication - ✅
fix: resolve memory leak in parser - ❌
update- 太模糊 - ❌
fix bug- 不具体
- ✅ 详细描述功能
- ✅ 添加测试截图
- ✅ 关联相关 Issue
- ❌ 只有标题
- ❌ 没有说明
- ✅ 及时 Review 他人代码
- ✅ 提供建设性意见
- ✅ 保持礼貌和尊重
- ❌ 拖延 Review
- ❌ 人身攻击
- ssh-mcp-dev/SKILL.md - 开发指南
- RELEASE_SKILL.md - 发布流程
- ssh-mcp-ops/SKILL.md - 运维操作
遵循规范的 Git 分支管理流程,让团队协作更高效! 🚀
Last updated: 2026-03-14
Version: 1.0