1. GitHub 与 Git 的关系
| 维度 | Git | GitHub |
|---|---|---|
| 本质 | 分布式版本控制系统(本地软件) | 基于 Git 的代码托管与协作平台(SaaS 服务) |
| 核心能力 | 版本追踪、分支管理、合并、历史回溯 | 可视化仓库、Pull Request、Issue、Actions、项目管理 |
| 运行环境 | 本地命令行或 GUI | Web 服务,通过 HTTPS/SSH 与本地 Git 交互 |
| 独立性 | 完全独立,不依赖任何平台 | 依赖 Git 协议,同类型替代有 GitLab、Gitee、Bitbucket |
2. GitHub 核心功能一览
| 功能模块 | 说明 | 关键点 |
|---|---|---|
| Repository(仓库) | 托管代码、文档及完整 Git 历史 | 可公开/私有;配置默认分支、保护规则;支持 README、LICENSE、.gitignore |
| Pull Request(PR) | 代码评审与合并请求机制 | 发起跨分支合并 → 审查 / CI 检查 → 讨论 → 合并或关闭;支持 Draft PR、Squash / Rebase 合并 |
| Issues | 任务跟踪、Bug 报告、功能请求 | 可分配、标签、里程碑;通过 Closes #xx 在 PR 中自动关闭;支持模板 |
| Actions(CI/CD) | 自动化工作流引擎 | YAML 定义,基于事件触发(push/PR/定时);社区市场提供大量预置 Actions |
| Projects | 项目管理看板 | 支持表格、看板、路线图视图;关联 Issue/PR;可自动状态流转 |
| Discussions | 社区讨论区 | 问答、思想交流、公告;与 Issue 分离,非事务性沟通 |
| Wiki & Pages | 文档与静态站点 | Wiki 用于协作文档;Pages 可从分支或 Actions 部署静态网站 |
| Codespaces | 云端开发环境 | 浏览器内完整 VS Code,预配置开发容器,即时开发 |
| Copilot | AI 编程助手(可选) | 代码补全、聊天、PR 审查辅助,深度集成在编辑器和 GitHub 界面中 |
| Security | 安全扫描与告警 | Dependabot 依赖更新与漏洞告警;Code scanning(CodeQL);Secret scanning 防密钥泄露 |
3. Pull Request 标准工作流
- 创建功能分支并推送到远程仓库。
- 在 GitHub 上打开 Pull Request,选择
base(目标分支)和compare(特性分支)。 - 自动触发 CI 检查(通过 Actions 或第三方集成)。
- 团队成员进行代码审查,在具体行上评论,请求修改。
- 所有检查通过且获得必要审批后,选择合并方式:
- Merge commit:保留完整分支历史。
- Squash merge:将整个 PR 压缩为单个提交,保持主干整洁。
- Rebase merge:将 PR 提交线性排列到目标分支顶端,无合并提交。
- 分支可自动删除,关闭 PR。
4. 常用交互与快捷操作
- 提及(
@username) 通知特定成员参与讨论。 - 引用(
#123) 链接到 Issue/PR 编号。 - 任务列表(
- [ ] task) 在 Issue/PR 描述中生成可勾选清单。 - 标签(Label)与里程碑(Milestone) 分类和规划进度。
- 分支保护规则:要求 PR 审查、状态检查通过、禁止强制推送等,可在仓库 Settings → Branches 配置。
5. 总结
GitHub 是建立在 Git 之上的协同层,提供:
- 代码协作:PR 审查、讨论、合并策略。
- 项目管理:Issue、Projects、里程碑。
- 自动化:Actions 实现 CI/CD。
- 安全与合规:漏洞扫描、密钥检测、权限控制。
- 社区与知识:Discussions、Wiki、Pages。
掌握这些工具,可以将 Git 的强大版本能力转化为高效的团队开发流程。