前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Git实用教程(一) | 为什么需要版本控制?(以嵌入式项目开发为例)

Git实用教程(一) | 为什么需要版本控制?(以嵌入式项目开发为例)

作者头像
Mculover666
发布2020-07-16 11:24:28
7380
发布2020-07-16 11:24:28
举报
文章被收录于专栏:TencentOS-tiny

1. 为什么需要版本控制

在我们每个人独立开发项目的时候,都会不知不觉的用到版本控制,只是我们并不知道“版本控制”这个名词,没有过多的在意~

比如我要做一个数字电压表的项目,该项目要实现的功能是采集0-5V电压并显示在OLED屏幕上,其芯片选型如下:

  • 主控芯片:STC89C52RC
  • AD芯片:ADC0832
  • 显示模块:0.96'OLED(IIC)

首先使用公板(开发板)开发软件程序,大致开发流程如下:

  • 编写STC89C52RC的串口驱动程序,实现串口发送功能,用于后期调试;
  • 编写ADC0832的驱动程序,实现采集电压值并通过串口发送功能
  • 编写OLED的驱动程序,实现电压值实时显示功能

所以项目文件夹安排如下:

不经意间,我们手动实现了该项目的版本控制,每个文件夹就是一个版本,这样做的好处是什么呢?

  • 提高代码重用性 比如其中的01-bsp_uart_tx文件夹,实现了串口发送的独立功能,当下次项目中需要时,可以直接拷贝过去而无需重写;
  • 方便版本回退(重点) 当编写第三个功能03-adc0832+uart+oled的时候,因为思路不清晰导致代码出错,这个时候如果将新添加的代码都找到删除,工作量非常大,而且效率极低,有了版本控制,我们可以直接在02-adc0832+uart的基础上重新编写;

在公板上验证程序无误后,便可以转入硬件开发:设计原理图,绘制PCB,生产焊接调试等工作,同样,在绘制原理图和PCB时,我们依然可以使用版本控制,在后续会有专门的一篇文章简述电路图的版本控制,此处不作赘述。

2.为什么需要版本控制工具

在上一节中我们通过多个文件夹的方式手动实现了版本控制,但是该方式也有一个非常大的缺点:

  • 迭代建立文件夹,重复内容多
  • 版本迭代时修改的内容无法查看

为了解决这一问题,诞生的主流的版本控制软件:

  • 集中式版本控制工具:SVN
  • 分布式版本控制工具:Git

使用版本控制软件可以解决这一大问题并且带来许多其他的优点,诸如:

  • 保存了数据当前状态以及之前每一个提交的历史状态,可以回退到任意一个版本节点
  • 在保存每一个版本的文件信息时不重复保存数据,节约存储空间,提高运行效率
  • 可以清楚到看到不同版本间修改的内容
  • 可以多人协作,团队开发

3. 版本控制软件的多人协作优势

继续拿上面的项目为例来说明版本控制软件的多人协作优势~

假设:

  • A同学负责adc0832的驱动实现,在main.c中编写测试函数进行测试;
  • B同学负责OLED的驱动实现,在main.中编写测试函数进行测试;

A完成测试后将main.c文件提交到公共服务器上,当B提交main.c后,公有服务器上A提交的main.c被B提交的文件所覆盖

使用版本控制软件即可很好的解决这一问题,并且具有以下优势:

  • 协同修改
  • 多个人可以修改服务器上的同一个文件,互不影响;
  • 权限管理
  • 对团队中参与开发的人员进行权限控制;
  • 对团队外参与开发的人员贡献的代码进行审核(Git独有);
  • 历史记录
  • 查看修改人、修改时间、修改内容、修改日志;
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Mculover666 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 为什么需要版本控制
  • 2.为什么需要版本控制工具
  • 3. 版本控制软件的多人协作优势
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档