从一次深夜调试说起上周三凌晨两点,实验室服务器还在嗡嗡作响。我盯着屏幕上的mAP曲线发愣——明明昨天还能跑到0.78的模型,今天重新训练直接掉到了0.65。更诡异的是,代码没改,数据没动,连随机种子都固定了。三个小时排查后,终于在某个.py文件的第237行发现端倪:三个月前为了快速测试,我硬编码了一个归一化参数,后来忘记改回配置文件读取。而昨天测试时用的恰好是另一个分支的代码版本。这种“昨天还能跑,今天就不行”的剧情,每个搞算法的人都遇到过。问题从来不在算法本身,而在我们如何管理那些不断变化的代码、数据和模型文件。Git不只是代码备份工具很多人把Git当成高级网盘,commit message全是“update”“fix bug”。等到需要回退时,面对几十个“update”只能欲哭无泪。Git真正的威力在于版本追踪和变更溯源,特别是当你的项目包含以下要素时:不断迭代的模型架构代码频繁调整的超参数配置文件持续增加的数据集动辄几个GB的预训练权重和训练日志代码版本:不只是.gitignore那么简单先看一个典型的CV项目结构:project/ ├── models/ │ ├── yolov5.py # 改过12次 │ └── yolov7.py # 实验性分支 ├── configs/ │ ├── train.ya