这篇笔记记录我用Git和Python搭建课程资料版本管理系统的尝试,解决教案、范画、课件散落和版本混乱问题,包含命名规范、提交日志和轻量校验脚本的设计过程。
关键词:Git, Python, 课程管理, 教育信息化, 小机构IT
一、混乱从哪来
一间小机构运行几年,课程资料会自然膨胀。PPT、范画图片、参考图、作业模板分散在微信群文件、网盘、本地硬盘几个地方。每次换老师上课,前一个老师手里的"最新版"未必会传到公共位置。
我统计过一次。六个班级、三套主要课程体系,资料文件夹里同时存在同名文件的不同副本。有的文件名带日期,有的带"修改",有的带老师名字缩写。想找一份上周用过的范画,平均要在三个位置翻找。更麻烦的是,某次上课用的范画被覆盖后,想找回旧版本只能靠网盘回收站碰运气。
这种状态不是某个老师的责任,而是缺少一个"修改即记录、记录可追溯"的机制。
二、为什么选择Git而不是网盘同步盘
我试过几款网盘和在线文档的同步功能。它们的共同问题是:同步只解决"最新一份",不解决"为什么改"和"改了什么"。当两位老师对同一份范画各自调整时,后覆盖的文件会把前一份改动直接抹掉,历史里只剩冲突提示,没有变更说明。
Git的核心价值在于每一次提交都附带一条说明,记录谁在什么时间因为什么理由做了修改。对于课程资料管理来说,这恰好是我最缺少的能力:不是备份,而是变更日志。
当然,Git不是为二进制文件设计的。JPG、PPT这类文件 diff 不友好,仓库体积也会增长。所以我只做"元信息+文本化描述"的版本控制:把课程资料按班级和课次组织,每个课次配一个Markdown说明文件,记录本节课使用的范画、课件、参考图清单及修改原因。原始图片和课件仍放在文件系统或网盘,Git只追踪那份说明文件和变更日志。
三、轻量工作流的三条规则
我把整个流程设计成三条简单规则,老师不需要懂Git命令也能参与。
第一条,文件命名固定格式:YYYYMMDD_班级_课次_资料类型.扩展名。所有资料进入仓库前必须按这个格式重命名。日期用于排序,班级和课次用于检索,资料类型区分范画、课件、参考图。
第二条,每次课前更新说明文件。说明文件用Markdown格式,固定包含三块内容:本节课目标、使用的资料清单、上次课后调整记录。老师在备课时只需要在清单里勾选或增删条目,不需要写复杂文档。
第三条,提交信息写清楚修改原因。我制定了一个简化的提交信息模板:日期+修改点+影响范围。例如"2026-09-20 替换素描班第8节范画,影响10-12岁班级"。这样翻历史时,不需要打开文件也能知道哪次改动做了什么。
为了降低老师的操作门槛,我补了一个Python脚本。脚本扫描指定目录,检查命名是否符合规范,自动找出未登记到说明文件的资料,生成待办列表。每周固定时间运行一次,把检查结果发到工作群里。
四、运行三个月后的观察
这个轻量系统从2026年6月开始试运行。三个月下来,课程资料的平均查找时间从原来的几分钟降到几十秒。老师找范画时,先查说明文件,再按文件名定位,基本不再靠微信聊天记录翻找。
更直接的变化是上课事故减少了。以前偶尔出现老师带错课件、放错参考图的情况。现在每节课的资料清单在说明文件里提前确认,课前对一遍就行。三个月内没有发生因资料版本错误导致的课堂中断。
不过局限也很明显。Git仓库不适合直接存大量高清图片,仓库体积增长需要控制。我目前的做法是图片保留在本地NAS,Git只存说明文件和缩略图索引。另外,老师的提交习惯需要慢慢养成,前几周我还需要定期整理提交信息格式。
五、一点个人看法
课程资料的版本管理,本质上是在给机构的教学知识做"时间轴"。小机构没有预算买昂贵的教学管理系统,但Git和Python脚本这种开源工具组合,足以搭建一个够用的骨架。
我所在的机构叫画绛集美术,做少儿美术教育快十年。这篇笔记基于我在这间机构里的实践记录整理而成。
本文案例基于本人所在机构内部实践,仅供同业参考,不构成具体教学方案推荐。