6.2 初始化仓库与读懂当前改动:工作区、暂存区、提交点

面向经管学生、研究者与从业者的 AI 智能体设计教材

作者

李学恒、林建浩、严翊歆

发布于

2026-05-11

6.2 配图

很多读者第一次学 Git,会被大量术语吓住。对本书来说,不需要先背模型图,只要先把三个位置分清:现在正在改的地方、准备提交的地方、已经写进历史的地方。

第一次进入项目时先做什么

如果项目还没有 Git 仓库,先在项目根目录执行:

git init
git status

git init 会在当前目录创建 Git 仓库。git status 用来确认现场:哪些文件还没被跟踪,哪些文件已经修改,当前是否已经有提交历史。

如果项目里本来就有大量不该纳入版本控制的产物,先补一个最小 .gitignore。书稿项目最常见的起点如下:

cat > .gitignore <<'EOF'
_book/
.quarto/
.DS_Store
*.log
EOF

然后把忽略规则本身也纳入版本控制:

git add .gitignore
git commit -m "chore: add initial gitignore"

工作区、暂存区和提交点

可以把最常见的三个位置理解为三句话:

  • 工作区:你此刻正在改的文件现场
  • 暂存区:你准备放进下一次提交的那部分改动
  • 提交点:已经进入历史、可以比较和回退的版本节点
三区概念

工作区(Working Directory)是当前文件的实际状态;暂存区(Staging Area)是下次提交的预备区域;提交点(Commit)是已写入历史的版本快照。所有 Git 操作都在这三个位置之间移动数据。

对应的最常用命令如下:

命令 作用
git status 看现场状态
git diff 看工作区相对上一次提交改了什么
git add <file> 把指定改动放进暂存区
git diff --cached 看暂存区里准备提交什么
git commit -m "..." 形成新的提交点

这几个命令要连起来理解,而不是分开记。

先看改动,再决定是否暂存

最容易养成的坏习惯,是让智能体改完以后直接提交。更稳的顺序应该是:

git status
git diff

如果只想看某个文件,命令更具体:

git diff chapters/chapter-6/section-6-3.qmd

如果你已经执行过 git add,还要再看一遍暂存区:

git diff --cached

这样做的价值很直接:提交之前,先确认自己到底在送什么进历史。

先把这三个位置记清,后面的分支、Worktree 和回退才有扎实基础。

最小习惯

每轮正式提交前,至少看一次 git status 和一次 git diff。这两个动作很便宜,却能挡住大量误提交。