Git:AI 写代码时代,为什么还要懂一点?
2026/6/19 16:16:11 网站建设 项目流程

温馨提示:若页面不能正常显示数学公式和代码,请阅读原文获得更好的阅读体验。

作者:丁闪闪 (连享会)
邮箱:lianxhcn@163.com

  • Title: Git:AI 写代码时代,为什么还要懂一点?
  • Keywords: github, 版本控制, 代码审查, 代码管理, AI 协作

🍎 系列推文:AI 写代码时代,为什么还要懂一点?

编者按:让 AI 写代码以后,一个新问题很快会出现:它不只是改一行代码,而是可能一次改掉十几个文件。它会重命名变量,调整路径,新增函数,删除临时文件,重写 README,顺手把结果表输出方式也换掉。代码可能确实更整洁了,但你也可能不知道它到底改了什么,更不知道改坏以后怎么退回去。Git 解决的不是“怎么写代码”,而是“怎么记录、比较、回退和协作”。本文不是 Git 入门教程,而是一份面向 AI 协作场景的 Git 使用手册。懂一点 Git,不是为了变成程序员,而是为了在 AI 修改项目之后,研究者仍然知道:它改了什么,为什么改,哪里可能出错,必要时如何回到上一个能跑通的版本。

参考资料:

  • Scott Chacon & Ben Straub, Pro Git.
  • Git 官方网站.
  • GitHub 官方网站.
  • GitHub Docs, Creating a pull request.
  • GitHub Docs, Reviewing changes in pull requests.
  • GitHub Docs, About pull requests.
  • 连享会, GitHub Desktop 使用方法介绍:可视化 Git 管理的效率工具.
  • 连享会, Stata 与 Github 交互.
  • 连享会, 社会科学研究复现包中的自述文档模板.
  • 连享会, 如何整理一份规范的论文复现文档?.
  • 连享会, 代码审计:如何从源头确保你的论文可复现?.

1. AI 改了什么,你知道吗?

以前写论文代码,很多人用文件名管理版本:

main.do main-修改版.do main-最终版.do main-最终版2.do main-真的最终版.do main-投稿版.do

这套方法虽然土,但还能勉强看出一点修改顺序。AI 介入以后,这个方法很快失效。因为 AI 不一定只改一个文件,它可能同时改:

01_clean_data.do 02_merge_policy.do 03_construct_variables.do 04_regression.do tables.do README.md requirements.txt

或者在 R / Python 项目里同时改:

clean_data.R model.R plot.R report.qmd utils.py README.md

这时,单靠文件名已经无法回答几个基本问题:

  • AI 到底改了哪些文件?
  • 每个文件改了哪些行?
  • 哪些修改是必要的,哪些是顺手改的?
  • 结果变了,是因为模型改了,还是样本处理改了?
  • 如果新版本跑不通,能不能退回上一个能跑通的版本?

Git 的价值就在这里。它不是替你写代码,而是记录项目变化。你可以把每一次重要修改保存成一个节点。以后项目出错时,不必凭记忆猜“昨天到底改了哪里”,而是可以直接查看差异,必要时回退。

所以,AI 时代学 Git 的目标不必设得很高。多数经管社科研究者不需要一开始就掌握复杂分支、rebase、cherry-pick 或 GitHub Actions。比较现实的目标是:

能记录一个能跑通的版本,能查看 AI 改了什么,能撤回错误修改,能把项目同步到 GitHub,能和合作者在同一个项目上有序协作。

这已经足够改变研究项目的管理方式。

2. Git 不是 GitHub

很多初学者会把 Git 和 GitHub 混在一起。二者相关,但不是一回事。

Git 是版本控制工具,记录本地项目的修改历史。GitHub 是代码托管和协作平台,可以把 Git 项目放到网上,方便备份、共享、协作和代码审查。

可以这样理解:

Git = 本地版本控制 GitHub = 远程托管和协作平台 GitHub Desktop = 可视化 Git 客户端

你完全可以只在本地使用 Git,不把项目传到 GitHub。对于含有敏感数据、未公开论文、保密项目的研究,先在本地使用 Git 记录版本,已经很有价值。

如果项目需要和学生、合作者或助研协作,可以再考虑 GitHub。GitHub 的好处是:

  • 可以远程备份;
  • 可以多人协作;
  • 可以用 issue 记录任务;
  • 可以用 pull request 审查修改;
  • 可以在线查看每次修改的 diff;
  • 可以发布公开复现包、课程材料或在线书。

如果不想一开始使用命令行,可以从 GitHub Desktop 这样的可视化工具入手。连享会此前已经介绍过 GitHub Desktop 使用方法介绍:可视化 Git 管理的效率工具 和 Stata 与 Github 交互,可以作为延伸阅读。

但无论使用命令行、GitHub Desktop、VS Code,还是 Cursor、Claude Code、Codex 这类 AI 编程工具,背后的逻辑都是一样的:

Git 记录修改,GitHub 管理协作。

3. 先把项目纳入版本控制

一个研究项目在使用 Git 前,最好先有基本目录结构。例如:

my_project/ ├── data_raw/ 原始数据 ├── data_clean/ 清洗后的数据 ├── code/ R、Python、Stata 代码 ├── output/ │ ├── tables/ 表格 │ └── figures/ 图形 ├── docs/ 论文、讲义、说明文档 ├── README.md └── .gitignore

所谓“项目根目录”,就是项目最外层文件夹。上面这个例子中,data_raw/code/output/README.md.gitignore所在的这一层,就是项目根目录。

3.1 Git 命令在哪里执行?

需要先说明一点:git initgit statusgit diff这些是 Git 命令,应当在你电脑本地的终端中运行,而不是在 ChatGPT、Claude、Kimi 或 DeepSeek 的普通对话框里直接运行。

对 Windows 用户来说,常见的终端有:

  • Git Bash;
  • PowerShell;
  • Windows Terminal;
  • VS Code 或 Cursor 的内置终端;
  • RStudio / Posit 的 Terminal 面板。

对 macOS 和 Linux 用户来说,通常可以直接使用系统自带的 Terminal。

关键不在于你使用哪一种终端,而在于:终端当前所在的位置,必须是项目根目录

温馨提示:若页面不能正常显示数学公式和代码,请阅读原文获得更好的阅读体验。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询