跳转到内容

Git 10 分钟速成

玩 RPG 游戏时,打 boss 前你会存档。打赢了继续,打输了读档重来。Git 就是给代码做同样的事——每次修改后“存档”,任何时候可以回到之前的版本。

对应关系:

游戏术语Git 术语
存档commit(提交)
存档列表log(日志)
回到存档checkout
对比两个存档diff
下载别人的存档clone

本地操作不需要联网,不需要注册账号——Git 是你电脑上的程序。等你需要和别人协作(clone、push)时才需要网络。

在文件夹里初始化 Git。只需要运行一次,Git 会在这个文件夹里建一个隐藏的 .git 目录,用来存放所有“存档”数据。

Terminal window
cd 你的项目文件夹
git init

运行后会看到 Initialized empty Git repository in ...,表示“游戏”开始了。

最常用的命令。告诉你:哪些文件改了、哪些还没存档、哪些是新文件。

Terminal window
git status

输出示例解读:

  • Untracked files(红色)— 新文件,Git 还不认识
  • Changes not staged for commit(红色)— 改过了但没标记“要存档”
  • Changes to be committed(绿色)— 已经标记好,等存档

每次不知道该做什么时,先 git status

不像游戏那样自动存全部——Git 让你选择哪些文件要存档。这给了你控制权:改了三处,可以先只存改好的那一处。

Terminal window
git add 文件名 # 只存一个文件
git add 文件1 文件2 # 存多个文件
git add . # 存当前目录所有修改(小心!)

git add 把文件放入暂存区(staging area)——相当于存档前的“待确认清单”。只有暂存区里的文件会被下一次 git commit 存进去。

git add . 的坑:会把当前目录所有修改都标记,包括你可能不想存的临时文件、配置文件。存之前看一眼 git status 确认。

git add 选中的文件正式记录下来。必须写存档说明(commit message),不然 Git 会拒绝。

Terminal window
git commit -m "存档说明"

存档说明怎么写?

  • 不好:修改更新fix
  • 好:修复登录页密码框显示明文添加用户头像上传功能

写清楚你做了什么,未来的你会感谢现在的你。

常见错误:忘记 git add 直接 git commit——什么都没存进去。正确流程永远是:改文件 → git addgit commit

5. git diff — 对比两次存档有什么不同

Section titled “5. git diff — 对比两次存档有什么不同”

看这次改了哪些行。绿色加号是新增的,红色减号是删掉的。

Terminal window
git diff # 看还没 git add 的修改
git diff --staged # 看已经 git add 还没 commit 的修改
git diff HEAD # 看所有还没提交的修改(最常用)

在让 AI 改代码后这个命令特别有用——确认 AI 只改了该改的地方,没乱动别的。

看历史上所有存档记录。

Terminal window
git log # 完整信息(按 q 退出)
git log --oneline # 一行一条,简洁(推荐)

每条记录包含:谁提交的、什么时候、存档说明、一个唯一编号(commit hash)。

把远程仓库(比如 GitHub 上的项目)下载到本地。

Terminal window
git clone <URL>

下载后自动把整个存档历史也带下来,你可以看这个项目从第一天到现在的所有改动。

除了以上 7 个基础命令,下面的场景还会用到几个保护性命令(git stashgit restore),遇到时现学即可。

和 Claude Code 配合的 3 个关键场景

Section titled “和 Claude Code 配合的 3 个关键场景”

让 AI 改一大段代码之前,先存个档。改错了可以秒回。

Terminal window
git add -A
git commit -m "AI 修改前的存档"

AI 改完代码后,用 git diff 逐行看改了什么。

Terminal window
git diff

确认只改了该改的地方,没有多改、少改、改错。

两种情况:

  • 只想撤回某个文件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 示例
.env
secret.txt
node_modules/

2. commit message 写“修改”、“更新”

没用。一个月后自己都看不懂。花 5 秒写清楚改了啥。

3. 忘记 git add 直接 git commit

什么都没存进去。习惯性在 git commit 前跑一次 git status 确认。

4. 不知道怎么回退就不敢让 AI 改代码

回顾场景三的两招:改乱了一个文件用 git restore <文件名>,改到一半想切换任务用 git stash / git stash pop。学会这两个就够了。

打开终端,复制粘贴下面每一行,一行一行跑:

Terminal window
cd ~/Desktop
mkdir test-git
cd test-git
git init
echo "第一行字" > test.txt
git add test.txt
git commit -m "第一个存档"
echo "第二行字" >> test.txt
git diff
git add test.txt
git commit -m "加了第二行"
git log --oneline

跑完后你应该看到两个存档记录。这就学会了 Git 最核心的操作。

本篇只涵盖本地操作。分支(branch)、推送(push)、合并(merge)等协作概念不在范围内——遇到时再学。术语速查见术语对照表

  • 开始之前 — 几分钟确认 Claude Code 教程适不适合你(AI 编程零基础入门路径下一站)
  • 通用环境基础设施 — 终端、PATH、包管理器、环境变量