
GitHub 与 VS Code 入门:代码版本管理操作指南
GitHub 管版本和协作,VS Code 写代码和提交,两者配起来是目前最通用的科研代码工作流。这篇从装好环境讲到第一次推送,再讲到给代码申请一个正式 DOI。
它解决什么问题
科研代码的常态是 model_final.py、model_final2.py、model_final_真最后.py,等到要交代码或返修补实验时,没人记得哪个文件对应论文里的哪张图。Git 解决的是"时间维度上的混乱"——每次提交留一次快照和一句说明,随时回到任意一天的状态;GitHub 把这份快照放到云端,附带协作、评审和发布能力。代价是概念不少,前两小时会有点烦。
5 个核心功能
• 提交历史:每次 git commit 留下一次快照和说明,改崩了能回到任意一个历史状态,不用再靠文件名区分版本。
• 分支与 PR:git checkout -b feature 开新分支做实验,确认可用后发 Pull Request 合并,主分支始终保持可跑的状态。
• Issue 记录:用 Issue 记录待办、bug 和讨论,协作留痕,毕业后别人接手也有线索。
• GitHub Actions:在 .github/workflows 里写脚本,每次推送自动跑测试或编译,防止代码悄悄失效。
• Release 与 DOI:打 Tag 发布 Release,再关联 Zenodo 自动生成 DOI,论文里就能正式引用这份代码。
上手五步走
第一步,注册并配置。 注册 GitHub 账号,安装 Git,命令行执行 git config --global user.name "你的名字" 与 git config --global user.email "你的邮箱",再生成 SSH 密钥并添加到账号设置里。
第二步,建本地仓库。 在项目目录执行 git init,先写好 .gitignore(把数据、模型权重、日志排除掉),然后 git add . 和 git commit -m "first commit"。
第三步,推送到云端。 在 GitHub 新建空仓库,执行 git remote add origin 仓库地址,再 git push -u origin main;老项目默认分支名可能是 master,以实际为准。
第四步,改用 VS Code 操作。 装 VS Code 与 Git 相关扩展,打开项目后在左侧"源代码管理"面板填写提交信息、点勾提交、点同步推送即可。
第五步,固化可引用版本。 实验跑通后执行 git tag v1.0 与 git push --tags,在 GitHub 上发布 Release;需要引用时到 Zenodo 关联该仓库领取 DOI。
三个常见坑
• 没写 .gitignore 就提交:几百 MB 的数据或模型权重一旦推上去,仓库会变得极难克隆,即使后来删除,文件仍留在历史记录里,需要专门清理。
• 密钥写进代码:API Key 直接写进脚本并提交,即便之后再删掉 commit,历史仍可能被自动爬取。正确做法是用环境变量,已泄露的密钥立即轮换。
• 滥用 force push:git push -f 会覆盖远端历史,多人协作时可能直接抹掉别人的提交。新手只在自己单独的分支上用。
适合谁,多少钱
适合写仿真、数据处理、深度学习脚本的理工科研究生和青椒,建议所有需要复现自己论文结果的团队都用起来。GitHub 公共仓库完全免费,私有仓库免费且不限协作者数量,付费方案主要面向团队管理与高级权限,价格以官网为准;VS Code 免费开源。国内访问和推送速度受网络影响,可自备加速方式。
结尾
版本管理真正省下的时间不在写代码时,而在返修和交接时。花两小时学会提交和回退,比事后重命名十个文件划算。你的课题代码现在是怎么保存的?评论区聊聊。
顺带说一句,本号长期维护四个可以直接用的数据库,在读研究生、博士和青椒可能更常用——
• ① 学术会议日历:按学科查未来 3 个月征稿,只保留未截止、信源可溯的。关注公号,点击菜单「学术日历」、后台回复「学术会议」。
• ② 学术招聘日历:博士、博士后、教职岗位,按截止日期排,每天更新。关注公号,点击菜单「招聘」或后台回复「招聘」。
• ③ 学术工具推荐:文献调研、文献管理、AI 阅读、投稿选刊、绘图查重,逐个实测。关注公号,点击菜单「学术工具」或后台回复「工具」。
• ④ 科研项目库:国家自然科学基金、国家社科基金、教育部及各省项目申报指南与截止节点,按申报时间排序,持续更新。关注公号,点击菜单「科研项目申报」或后台回复「项目申报」。
更多内容,也请关注我的公众号:大学圈内事儿