转自 | Mculover666
1. 为什么需要版本控制
主控芯片: STC89C52RC;AD芯片: ADC0832;显示模块: 0.96'OLED(IIC);
编写STC89C52RC的串口驱动程序,实现串口发送功能,用于后期调试; 编写ADC0832的驱动程序,实现采集电压值并通过串口发送功能; 编写OLED的驱动程序,实现电压值实时显示功能;

提高代码重用性比如其中的01-bsp_uart_tx文件夹,实现了串口发送的独立功能,当下次项目中需要时,可以直接拷贝过去而无需重写;方便版本回退(重点)当编写第三个功能03-adc0832+uart+oled的时候,因为思路不清晰导致代码出错,这个时候如果将新添加的代码都找到删除,工作量非常大,而且效率极低,有了版本控制,我们可以直接在02-adc0832+uart的基础上重新编写;
2.为什么需要版本控制工具
迭代建立文件夹,重复内容多; 版本迭代时修改的内容无法查看;
集中式版本控制工具:SVN 分布式版本控制工具:Git
保存了数据当前状态以及之前每一个提交的历史状态,可以回退到任意一个版本节点; 在保存每一个版本的文件信息时不重复保存数据,节约存储空间,提高运行效率; 可以清楚到看到不同版本间修改的内容; 可以多人协作,团队开发;
3. 版本控制软件的多人协作优势
A同学负责adc0832的驱动实现,在main.c中编写测试函数进行测试; B同学负责OLED的驱动实现,在main.中编写测试函数进行测试;
main.c文件提交到公共服务器上,当B提交main.c后,公有服务器上A提交的main.c被B提交的文件所覆盖。协同修改多个人可以修改服务器上的同一个文件,互不影响; 权限管理对团队中参与开发的人员进行权限控制; 对团队外参与开发的人员贡献的代码进行审核(Git独有); 历史记录查看修改人、修改时间、修改内容、修改日志;
