Git 10 分钟速成
类比:Git 像游戏存档
Section titled “类比:Git 像游戏存档”玩 RPG 游戏时,打 boss 前你会存档。打赢了继续,打输了读档重来。Git 就是给代码做同样的事——每次修改后“存档”,任何时候可以回到之前的版本。
对应关系:
| 游戏术语 | Git 术语 |
|---|---|
| 存档 | commit(提交) |
| 存档列表 | log(日志) |
| 回到存档 | checkout |
| 对比两个存档 | diff |
| 下载别人的存档 | clone |
本地操作不需要联网,不需要注册账号——Git 是你电脑上的程序。等你需要和别人协作(clone、push)时才需要网络。
7 个核心操作
Section titled “7 个核心操作”1. git init — 开始一个新游戏
Section titled “1. git init — 开始一个新游戏”在文件夹里初始化 Git。只需要运行一次,Git 会在这个文件夹里建一个隐藏的 .git 目录,用来存放所有“存档”数据。
cd 你的项目文件夹git init运行后会看到 Initialized empty Git repository in ...,表示“游戏”开始了。
2. git status — 看现在什么状态
Section titled “2. git status — 看现在什么状态”最常用的命令。告诉你:哪些文件改了、哪些还没存档、哪些是新文件。
git status输出示例解读:
Untracked files(红色)— 新文件,Git 还不认识Changes not staged for commit(红色)— 改过了但没标记“要存档”Changes to be committed(绿色)— 已经标记好,等存档
每次不知道该做什么时,先 git status。
3. git add — 选择要存档的文件
Section titled “3. git add — 选择要存档的文件”不像游戏那样自动存全部——Git 让你选择哪些文件要存档。这给了你控制权:改了三处,可以先只存改好的那一处。
git add 文件名 # 只存一个文件git add 文件1 文件2 # 存多个文件git add . # 存当前目录所有修改(小心!)git add 把文件放入暂存区(staging area)——相当于存档前的“待确认清单”。只有暂存区里的文件会被下一次 git commit 存进去。
git add . 的坑:会把当前目录所有修改都标记,包括你可能不想存的临时文件、配置文件。存之前看一眼 git status 确认。
4. git commit — 存档!
Section titled “4. git commit — 存档!”把 git add 选中的文件正式记录下来。必须写存档说明(commit message),不然 Git 会拒绝。
git commit -m "存档说明"存档说明怎么写?
- 不好:
修改、更新、fix - 好:
修复登录页密码框显示明文、添加用户头像上传功能
写清楚你做了什么,未来的你会感谢现在的你。
常见错误:忘记 git add 直接 git commit——什么都没存进去。正确流程永远是:改文件 → git add → git commit。
5. git diff — 对比两次存档有什么不同
Section titled “5. git diff — 对比两次存档有什么不同”看这次改了哪些行。绿色加号是新增的,红色减号是删掉的。
git diff # 看还没 git add 的修改git diff --staged # 看已经 git add 还没 commit 的修改git diff HEAD # 看所有还没提交的修改(最常用)在让 AI 改代码后这个命令特别有用——确认 AI 只改了该改的地方,没乱动别的。
6. git log — 翻存档列表
Section titled “6. git log — 翻存档列表”看历史上所有存档记录。
git log # 完整信息(按 q 退出)git log --oneline # 一行一条,简洁(推荐)每条记录包含:谁提交的、什么时候、存档说明、一个唯一编号(commit hash)。
7. git clone — 下载别人的存档
Section titled “7. git clone — 下载别人的存档”把远程仓库(比如 GitHub 上的项目)下载到本地。
git clone <URL>下载后自动把整个存档历史也带下来,你可以看这个项目从第一天到现在的所有改动。
除了以上 7 个基础命令,下面的场景还会用到几个保护性命令(git stash、git restore),遇到时现学即可。
和 Claude Code 配合的 3 个关键场景
Section titled “和 Claude Code 配合的 3 个关键场景”场景一:AI 改代码前先存档
Section titled “场景一:AI 改代码前先存档”让 AI 改一大段代码之前,先存个档。改错了可以秒回。
git add -Agit commit -m "AI 修改前的存档"场景二:AI 改完后检查
Section titled “场景二:AI 改完后检查”AI 改完代码后,用 git diff 逐行看改了什么。
git diff确认只改了该改的地方,没有多改、少改、改错。
场景三:改错了回退
Section titled “场景三:改错了回退”两种情况:
- 只想撤回某个文件:
git checkout -- 文件名,这个文件回到上次存档的状态,其他文件不受影响 - 想把当前改到一半的进度暂时存起来:
git stash(像游戏的“快速存档”)。回来继续时git stash pop
现代 Git(2.23+)推荐用
git restore <file>替代git checkout -- <file>,功能相同但语义更清晰。
学会这两个命令你就敢让 AI 随便改了——改乱了一个文件用 git checkout --(或 git restore),改乱了一堆用 git stash。
1. git add . 存进了不该存的文件
比如 API key 文件、密码文件。解决:在项目根目录建一个 .gitignore 文件,把不想存的文件名写进去,一行一个。
# .gitignore 示例.envsecret.txtnode_modules/2. commit message 写“修改”、“更新”
没用。一个月后自己都看不懂。花 5 秒写清楚改了啥。
3. 忘记 git add 直接 git commit
什么都没存进去。习惯性在 git commit 前跑一次 git status 确认。
4. 不知道怎么回退就不敢让 AI 改代码
回顾场景三的两招:改乱了一个文件用 git restore <文件名>,改到一半想切换任务用 git stash / git stash pop。学会这两个就够了。
Checkpoint:动手试试
Section titled “Checkpoint:动手试试”打开终端,复制粘贴下面每一行,一行一行跑:
cd ~/Desktopmkdir test-gitcd test-gitgit initecho "第一行字" > test.txtgit add test.txtgit commit -m "第一个存档"echo "第二行字" >> test.txtgit diffgit add test.txtgit commit -m "加了第二行"git log --oneline跑完后你应该看到两个存档记录。这就学会了 Git 最核心的操作。
本篇只涵盖本地操作。分支(branch)、推送(push)、合并(merge)等协作概念不在范围内——遇到时再学。术语速查见术语对照表。