Git:AI 写代码时代,为什么还要懂一点?
温馨提示若页面不能正常显示数学公式和代码请阅读原文获得更好的阅读体验。作者丁闪闪 (连享会)邮箱lianxhcn163.comTitle: GitAI 写代码时代为什么还要懂一点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 init、git status、git diff这些是 Git 命令应当在你电脑本地的终端中运行而不是在 ChatGPT、Claude、Kimi 或 DeepSeek 的普通对话框里直接运行。对 Windows 用户来说常见的终端有Git BashPowerShellWindows TerminalVS Code 或 Cursor 的内置终端RStudio / Posit 的 Terminal 面板。对 macOS 和 Linux 用户来说通常可以直接使用系统自带的 Terminal。关键不在于你使用哪一种终端而在于终端当前所在的位置必须是项目根目录。温馨提示若页面不能正常显示数学公式和代码请阅读原文获得更好的阅读体验。