Git 与版本控制:AI 协作的安全网
用 AI 写代码,AI 会改文件。Git 让你永远能回到上一版——这就是它的全部意义。
你将学会
- 说清 Git 的三个核心价值:存档、回退、对比;
- 用不到 10 条命令完成日常操作;
- 写出规范的提交信息,坚持小步提交;
- 让 AI 配合 Git:改完给 diff、出问题能回退;
- 出事了(改崩、误删)知道怎么救。
前置知识
读过编程心智模型速成(知道文件和终端即可)。本机装了 Git,见工具与资源。
一、为什么是 Git,而不是“复制一份备份”
AI 一次可能改好几个文件。手动复制备份的问题是:你不知道“改了哪里”,也说不清“回到哪一版”。
Git 给你三件事:
- 存档:每次改完存一次(提交),随时能回到任意一次存档;
- 对比:看清两版之间到底改了什么(diff);
- 协作:多人、多分支并行,最后合并。
二、心智模型
text
工作区(你正在编辑的文件)
│ git add
▼
暂存区(这一版准备提交的改动)
│ git commit
▼
提交历史(一串存档,每个有 id 和说明)- 工作区:你眼前正在改的文件。
- 暂存区:一个“待提交清单”;
git add把改动放进去。 - 提交(commit):一次存档,包含 id 和说明。
- 分支:从某个提交分出来的独立开发线(入门阶段先只用主干即可)。
三、最小命令集
一天只会用到这几条:
text
git init 在当前目录初始化仓库
git status 看现在有哪些改动(最常用)
git add <文件> 把改动放进暂存区(git add . 表示全部)
git commit -m "说明" 存一次档
git log --oneline 看历史提交(一行一条)
git diff 看还没提交的改动
git restore <文件> 放弃某文件尚未提交的改动记不住没关系:
git status会提示你下一步该敲什么。
四、提交规范
一条好提交的原则:一次提交只做一件可说明的事。
text
feat: 新增按分类筛选
fix: 修复导入非法 JSON 时覆盖数据的问题
docs: 补充 README 运行说明- 前缀表示类型(
feat新功能 /fix修 bug /docs文档 /refactor重构); - 冒号后写中文简述,说清“改了什么”;
- 别把十个不相关的改动塞进一次提交。
为什么要小步:出问题时,你能精确回到出问题之前那一版,而不是丢掉一整天的活。
五、让 AI 配合 Git
在提示里把 Git 写进去,AI 会做得规矩得多:
text
完成后请:
1. 用 git status 和 git diff 说明改了哪些文件、改了什么;
2. 一个功能对应一次提交,提交信息用「feat: 中文简述」格式;
3. 如果检查没通过,先不要提交。收工三件套(对齐入门教程的四个习惯):git status 看改动 → git diff 核对 → git commit 存档。
六、出事了怎么办
| 情况 | 处理 |
|---|---|
| 刚改崩,还没提交 | git restore <文件> 放弃该文件改动 |
| 提交错了,想撤回上次提交 | git reset --soft HEAD~1 撤提交、保留改动 |
| 想看看某次提交改了什么 | git show <commit-id> |
| 误删了文件(提交过) | git restore <文件> 从历史恢复 |
| 想回到更早的好的版本 | git log --oneline 找到那次,git show 看内容 |
入门阶段不要碰
git reset --hard和强制推送——它们会真的丢东西。
动手练习
- 在一个空目录里
git init,建一个文件,git add+git commit存第一次档。 - 改几句话,用
git diff看差异,再提交一次。 - 故意改坏一个文件,用
git restore恢复。
检查点
- 能用
git status说出“现在有哪些改动”; - 能读懂一次
git diff,指出改了哪些文件、哪些行; - 能在改崩之后把项目恢复到上一个提交。
常见问题
Q:node_modules/ 也被提交进去了怎么办? 加一个 .gitignore 文件,写上 node_modules/、.env、dist/,再把它们从暂存区移除。
Q:一定要用命令行吗? 不一定,图形工具也行。但命令能让你看懂 AI 在做什么,建议至少会 status / add / commit / diff。
小结与下一步
Git 是 AI 协作的安全网。接下来去从 0 到 1 用 Vibe Coding 写自己的项目,把 Git 用在真实的切片实现里。