源代码管理工具——Github
源代码管理工具——Github
GitHub:现代软件开发的基石


一、GitHub 概述
(一)核心功能
1.分布式版本控制
Git 基础:作为 Git 的托管平台,GitHub 实现了分布式版本控制系统的所有特性。开发者可以在本地完整复制项目仓库(Repository),离线进行代码提交(Commit),之后再将本地修改推送到远程仓库。
分支管理:支持无限创建分支(Branch),如主分支(main/master)、开发分支(develop)、功能分支(feature/*)等。萌宠食验室 APP 可通过分支策略实现并行开发,例如同时进行宠物食谱推荐和社区交流功能的开发。
2.协作开发工具
Pull Request(PR):团队成员通过 PR 提交代码变更,触发代码审查流程。在萌宠食验室 APP 开发中,每个新功能或 Bug 修复都可通过 PR 进行严格审查。
Issues:用于任务跟踪、Bug 记录和需求管理。可设置标签(如 bug、enhancement)、优先级和里程碑,实现敏捷开发。
项目看板(Projects):可视化任务流程,支持拖拽操作,直观展示 "待办 - 进行中 - 已完成" 状态。
3.自动化与集成
GitHub Actions:实现 CI/CD(持续集成 / 持续部署)自动化。例如,每次代码提交后自动运行单元测试、打包应用,甚至部署到测试环境。
第三方集成:与 Jira、Slack、VS Code 等工具无缝对接,形成完整的开发工作流。
(二)优势与价值
全球最大开源社区:汇聚超过 1 亿开发者,可借鉴海量开源项目经验,如宠物健康数据可视化组件。
安全与可靠性:提供代码备份、漏洞扫描(Dependabot)、访问控制等安全功能,保障项目代码安全。
知识沉淀:Wiki 功能可记录项目文档(如 API 设计、部署指南),Issues 讨论形成技术知识库。
(三)基本操作步骤(以“Hello World”为例)
步骤 1:创建存储库
第一件事是创建一个存储库。可以将存储库视为包含相关项目(如文件、图像、视频甚至其他文件夹)的文件夹。存储库通常将属于同一 “项目” 或正在处理的事物的项目组合在一起。
通常,存储库包括 README 文件,该文件包含有关的项目的信息。README 文件是用 Markdown 编写的,Markdown 是一种易于阅读、易于编写的语言,用于格式化纯文本。GitHub 允许在创建新存储库的同时添加 README 文件。GitHub 还提供了其他常用选项,例如许可证文件,但现在不必选择其中任何一个。仓库可以是存储想法、资源,甚至与他人共享和讨论事物的地方。
①在任何页面的右上角,选择 ,然后单击 New repository (新建存储库)。

②在“Repository name(存储库名称)”框中,键入hello-world。
③在“Description(描述)”框中,键入简短描述。例如,键入“此存储库用于练习 GitHub Flow”。
④选择的仓库是 Public (公共) 还是 Private (私有)。
⑤选择 Add a README file(添加自述文件)。
⑥单击 Create repository(创建存储库)。
步骤 2:创建分支
分支允许同时拥有仓库的不同版本。
默认情况下,存储库有一个名为main的分支,该分支被视为最终分支。可以在存储库中创建其他分支。
当在不更改主代码源的情况下向项目添加新功能时,分支非常有用。在合并 main 分支之前,在不同分支上完成的工作不会显示在main分支上。在将分支提交到main之前,可以使用分支进行试验和编辑。
当从main分支创建分支时,将创建该时间点的副本或快照。如果其他人在处理main分支时对main分支进行了更改,可以提取这些更新。
此图显示:
分支main
一个名为feature
在合并到featuremain

创建分支
①单击存储库的 Code (代码) 选项卡。
②在文件列表上方,单击显示 main 的下拉菜单。

在文本框中键入分支名称 readme-edits
单击 Create branch: readme-edits from main。
现在有两个分支,分别是main 和readme-edits ,现在,它们看起来完全一样。接下来,将向新分支添加更改。
第 3 步:进行更改并提交
在上一步中创建新分支时,GitHub 会带到新分支的代码页,该分支是readme-editsmain
可以对存储库中的文件进行更改并保存更改。在 GitHub 上,保存的更改称为提交。每个提交都有一个关联的提交消息,该消息是解释为什么进行特定更改的描述。提交消息捕获更改的历史记录,以便其他贡献者可以了解您所做的工作和原因。
①在创建的readme-editsREADME.md分支下,单击该文件。
②要编辑文件,请单击 。
③在编辑器中,写一些关于你自己的信息。
④单击 Commit changes(提交更改)。
⑥在 “Commit changes” 框中,编写描述更改的提交消息。
⑦单击 Commit changes(提交更改)。
这些更改将仅对分支上的 README 文件进行,因此现在此分支包含readme-edits与main
第 4 步:打开拉取请求
现在,在main的分支中进行了更改,您可以打开拉取请求。
拉取请求是 GitHub 上协作的核心。当打开拉取请求,提出更改,并请求有人审查和提取贡献,并将其合并到他们的分支中。拉取请求显示两个分支的内容的差异或差异。更改、添加和减去以不同的颜色显示。
提交后,可以打开拉取请求并开始讨论,甚至在代码完成之前。
在此步骤中,将在存储库中打开一个拉取请求,然后合并它。这是在处理大型项目之前练习 GitHub 流程的好方法。
①单击存储库的 Pull requests(拉取请求)选项卡。
②单击 New pull request(新建拉取请求)。
③在 Example Comparisons (示例比较) 框中,选择创建的分支readme-editsmain ,以与之 (原始) 进行比较。
④在 Compare (比较) 页面上查看差异中的更改,确保它们是要提交的内容。

⑤单击 Create pull request(创建拉取请求)。
⑥为拉取请求提供标题,并编写更改的简要说明。可以包含表情符号以及拖放图像和 gif。
⑦单击 Create pull request(创建拉取请求)。
第 5 步:合并您的拉取请求
在最后一步中,将 branch 合并到 branch 中。
有时,拉取请求可能会引入与main上的现有代码冲突的代码更改。如果存在任何冲突,GitHub 将提醒代码冲突,并阻止合并,直到冲突得到解决。可以进行提交以解决冲突,或使用拉取请求中的评论与团队成员讨论冲突。
①在拉取请求的底部,单击 Merge pull request(合并拉取请求)以将更改合并到main。
②单击 Confirm merge。将收到一条消息,指出请求已成功合并,并且请求已关闭。
③单击 Delete branch(删除分支)。现在,拉取请求已合并并且更改已打开,可以安全地删除该分支。如果想对项目进行更多更改,可以随时创建一个新分支并重复此过程。
④单击返回存储库的 Code 选项卡,以查看在main上的已发布更改。
GitHub 在萌宠食验室 APP 开发中的实践
一、项目背景与挑战
(一)项目需求
萌宠食验室 APP 旨在为宠物主人提供:
宠物专属健康记录(饮食、体重、疫苗)
专业营养师定制的个性化饮食方案
宠物用品评测与推荐
社区交流与便捷购物功能
(二)开发挑战
多模块协同:前端(iOS/Android/ 小程序)、后端 API、数据库设计需要高效协作。
数据安全:宠物健康数据的隐私保护与备份需求。
快速迭代:需根据用户反馈频繁更新功能,如食谱推荐算法优化。
二、GitHub 落地策略
(一)仓库架构设计
点击查看代码
pet-diet-lab
frontend # 前端代码(按平台划分)
app # 移动端应用
web # 网页版
backend # 后端服务
api # API接口
services # 微服务
docs # 文档(架构图、API文档)
tests # 测试用例
github # GitHub配置(工作流、PR模板)
(二)分支与发布策略
1.Git Flow 工作流
主分支(main):稳定版本,仅用于发布生产环境。
开发分支(develop):集成所有完成的功能,用于测试环境。
功能分支(feature/):开发新功能,如feature/pet-recipe。
发布分支(release/):准备版本发布,如release/v1.0.0。
修复分支(hotfix/*):紧急修复生产问题,如hotfix/fix-payment。
2.发布流程

(三)协作机制
1.代码审查流程
开发者创建 PR 时需关联相关 Issue,填写变更说明。
至少 2 名团队成员审查通过后方可合并。
使用 Reviewers 功能自动分配代码审查人。
2.自动化测试
在.github/workflows配置 CI 工作流,每次 PR 触发:
点击查看代码
name: CI
on: [pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- run: pip install -r requirements.txt
- run: pytest tests/
3.问题跟踪
使用 GitHub Issues 管理需求和 Bug
三、实践案例:宠物食谱推荐功能开发
(一)需求分析
用户需求:根据宠物品种、年龄、体重生成个性化饮食方案。
技术挑战:算法实现、数据可视化、与营养师人工审核流程对接。
(二)开发过程
1.任务分解
创建 Issue:#123 "实现 AI 食谱推荐引擎"(标签:feature, module:recipe, priority:high)
在 Projects 看板中将任务拖至 "进行中"。
2.代码实现
开发者创建分支feature/recipe-recommendation。
实现算法逻辑并编写单元测试:
点击查看代码
def generate_recipe(pet_info: dict) -> list:
"""根据宠物信息生成食谱"""
# 计算每日营养需求
nutrition = calculate_nutrition(
breed=pet_info['breed'],
age=pet_info['age'],
weight=pet_info['weight'],
activity_level=pet_info['activity_level']
)
# 匹配食材与食谱
recipes = match_recipes(nutrition)
return recipes
3.代码审查
提交 PR 时关联 Issue #123,描述变更内容。
审查人检查:
算法逻辑是否合理
代码是否符合 PEP8 规范
单元测试覆盖率是否达标
4.集成与部署
PR 合并后,GitHub Actions 自动:
运行测试套件
构建 Docker 镜像
部署到测试环境
测试通过后,手动部署到生产环境。
(三)成果展示
在 GitHub Releases 发布 v1.1.0 版本,附带更新日志:

总结与展望
一、GitHub 带来的价值
1.效率提升:通过自动化流程减少重复工作,PR 机制提升代码质量。
2.透明度增强:所有团队成员可实时查看项目进度、代码变更和问题状态。
3.知识沉淀:Wiki 和 Issues 成为项目文档和技术讨论的知识库。
二、未来规划
1.扩展自动化:实现端到端测试和灰度发布。
2.加强安全管理:利用 GitHub Advanced Security 进行代码漏洞扫描。
3.社区建设:开源部分非敏感代码,吸引外部开发者贡献。
GitHub 作为开发基础设施,为萌宠食验室 APP 提供了高效协作、质量保障和持续交付的能力。通过合理的流程设计和工具链集成,团队能够专注于核心业务功能开发,加速产品迭代,为宠物主人提供更优质的服务体验。
浙公网安备 33010602011771号