当前位置: 首页 > news >正文

[T.4.5] 实验课/团队项目

[T.4.5] 实验课/团队项目

项目 内容
这个作业属于哪个课程 首页 - 2026年春季软件工程 - 北京航空航天大学 - 班级博客 - 博客园
这个作业的需求在哪里 [T.4.5] 实验课/团队项目:团队代码管理准备-Ver.5-final-final-ffffffinal最终版真的绝对不再改了!!(2)_1 - 作业 - 2026年春季软件工程 - 班级博客 - 博客园
我在这个课程的目标是 通过学习软件工程理论与敏捷开发实践,熟悉产品从立项到交付的全流程,提升团队协作与工程开发经验。
这个作业在哪个具体方面帮助我实现目标 学习使用Git管理代码和团队协作,以及了解工程化代码标准

我们的软工实践:从 Git 混乱到工程化协作的蜕变

1. 团队介绍与前期准备

在项目的起点,我们首先确立了团队的 DevOps 规范。经过讨论,我们选择了 GitHub 作为代码托管平台,并明确了 DevOps 的分工。

  • 技术选型:由于 GitHub 强大的 Issue Forms 和团队协作功能,我们将其作为核心平台。
  • 仓库初始化:我们基于 main 分支建立了 dev 开发分支,并配置了 .gitignore 以及用于记录错误的 error-logs.txt

2. 任务实战:Task.1 基础协作与规范提交

  • 规范化提交:每位成员在认领任务(如前端/后端数据重构)后,都严格按照 <type>(<scope>): <subject> 的格式编写提交信息。
  • 初次合并:我们通过 Pull Request (PR) 将各自的功能分支合入 dev。这是我们第一次集体 Code Review,确保了代码风格的统一。

image


3. 进阶挑战:Task.2 解决

  • 变基 (Rebase) 的实践:与传统的 merge 不同,我们采用了 git rebase 来保持提交历史的线性整洁。
  • 解决冲突:在处理 /src/info/ 下的 JSON 冲突时,我们遵循了“尊重他人代码”的原则,将冲突部分进行了手动拼接而非简单覆盖。

image


4. Task. HotFix!

4.1 线上热修复

我们发现在发布前检查中 classdata.json 存在拼写错误。我们迅速从 release 分支拉取 fix 分支进行修复,并确保修复后的代码同步合入了 maindev

4.2 彻底清除敏感数据

挑战来自于彻底抹除 /src/tofix/SUPER-SENSITIVE-DATA.txt 的历史痕迹。

  • 溯源:通过 git log --full-history 我们发现了该文件在根目录下的原路径。
  • 清理:我们使用 git filter-branch 命令重写了 80 多次提交历史。
  • 新仓库:我们将清理后的纯净代码推送到了全新的 GitHub 仓库。

image


5. 技术反思与心得

5.1 Rebase vs Merge

通过实践,我们深刻理解了 rebase 的利弊。它能让分支图看起来像一条直线,非常美观,但在处理公共分支时必须极其谨慎。

5.2 规范不仅仅是约束

起初觉得繁琐的 Commit 规范和分支管理,在最后进行 HotFix 和追溯历史时展现了巨大的威力——我们能通过搜索快速定位到任何一次变动。


6. 成果展示

  • 旧仓库地址(含泄露数据)https://github.com/paidaxingKing/BUAASE2026-TeamVersionContro
  • 新仓库地址(纯净版本)https://github.com/paidaxingKing/NEW-BUAASE2026-TeamVersionControl

image

7.如何管理代码

1. 工具选择

  • 平台选择:我们选择了github。因为我们相对熟悉github,而且它的 Pull Request (PR) 界面和冲突解决提示做得很直观,适合我们这种刚开始磨合的团队。
  • 分工与权限:由PM作为团队的仓库管理员(DevOps)。任何人都绝对不能直接往 maindevpush 代码,想合并必须提交 PR。

2. 代码审查和版本发行

  • 互相看代码: 大家提了 PR 之后,不能自己点合并。管理员在合并前会重点看两件事:
    1. 代码有没有跑通、有没有明显的 Bug。
    2. 提交信息规范:所有 commit 必须类似 feat(模块): 做了什么 或者 fix(模块): 修了什么。便于后续发现修改BUG
  • 发布流程: 我们跑通了一套三步走的发布流:平时大家都在各自的 feature 分支写代码 -> 写完提 PR 合并到 dev -> 攒够一个版本的量后,切出 release 跑一波测试 -> 没问题了再合进 main,并且打上版本号(比如 v1.0.0)。

3. 踩过的坑与风险防范

团队合作写代码,真正的挑战不是写功能,而是不互相覆盖代码。我们总结了这几天遇到的几个最大风险和解决办法:

  • 遇到代码冲突
    • 风险:Task 2 里大家都去改同一个文件
    • 对策:我们约定,遇到冲突不能暴力覆盖别人的代码,正确做法是把对方的代码和自己的代码手动拼接起来。另外,开发时要勤用 git fetchgit rebase 拉取最新代码。
  • 出现敏感数据
    • 风险:历史提交记录中出现敏感文件。
    • 对策:建项目第一件事就是写好 .gitignore,把密钥文件拦在外面;如果出现泄露事件,使用 git filter-branch 重写仓库历史,然后迁移到新仓库。
  • 分支图凌乱
    • 风险:大量使用Merge会导致分支图难以辨别
    • 对策:我们现在要求大家在往公共分支合并前,尽量用 git rebase 把自己的修改变基到最新节点,保持团队开发历史是一条干干净净的直线。
http://www.jsqmd.com/news/676862/

相关文章:

  • 终极窗口分辨率控制:5分钟掌握SRWE的完整使用指南
  • 佛山湘悦机械设备租赁:禅城诚信的路基箱出售公司 - LYL仔仔
  • 终极Django-Tastypie认证系统完全指南:从Basic到OAuth的全方位安全覆盖
  • 营业性演出许可证代办服务商推荐哪家好 - 速递信息
  • 深入解析EC与BIOS/OS的端口通信机制
  • AnyFlip电子书下载器:快速将在线翻页书转换为PDF的完整指南
  • 南昌拓拆建筑拆除:店铺微挖建筑拆除电话 - LYL仔仔
  • 2026选购指南:国产液相色谱柱更稳定,适合长期实验使用,性能不输进口 - 品牌种草官
  • 不只是写论文:用TexLive+TeXstudio打造你的技术文档工作流(Markdown用户进阶指南)
  • 深度解析Neural Network Architecture Diagrams:可视化即代码的神经网络架构设计革命
  • CDN、Nginx与浏览器:深入If-Modified-Since在缓存链路中的‘三次握手’
  • LabVIEW状态机实战:用STM32+DHT11搭建温湿度监测系统(附完整VI源码)
  • LeetCodehot100-739每日温度
  • 托福备考不迷路!这些机构带你直冲110+ - 品牌测评鉴赏家
  • 2026年好用的港口浮式起重机制动器推荐,焦开制动器上榜 - 工业品牌热点
  • 拖拽即压缩!极速图片压缩器的极简操作体验评测
  • 别再死记硬背公式了!用‘拆、配、组’三步法搞定所有因式分解题
  • 跨平台文件共享工具推荐:企业级多人、多设备资源共享方案
  • 如何快速实现桌面自动化:开源鼠标键盘录制工具的终极指南
  • 几何光学仿真实用指南:如何用Ray Optics快速设计光学系统
  • 高低温湿热试验箱生产厂家推荐?巨亚、鹏锐等7家实力工厂深度测评 - 品牌推荐大师
  • Python 读写 Redis 缓存数据库:写给 Python 初学者的入门案例
  • Fish Speech 1.5法律文书语音化:判决书/合同条款专业语音输出实践
  • 保姆级教程:用Docker Compose一键部署ELK 7.17.2,再也不用为日志发愁
  • 短视频智能获客系统源码:独立运行、配置化、支持多平台
  • SPIRAN ART SUMMONER多场景兼容:支持Stable Diffusion WebUI插件式接入方案
  • Tsukimi完整指南:3步打造你的专属Linux媒体中心播放器
  • 北京托福机构实锤推荐!小白避坑直接冲 - 品牌测评鉴赏家
  • 别再手动调平了!用CloudCompare的平面拟合功能,5分钟搞定3D扫描点云对齐
  • 3分钟搞定B站视频下载:BiliDownloader终极免费解决方案