前十二课你写了多少代码?回想一下:主页改了又改、音乐播放器坏了又修……每次大改动前,你是不是都靠手动复制文件夹留后路?(你的主页还有两处副本在「我的网站」和「基础入门」——那就是"手动存档"。)
| 手动副本(现在的你) | Git(今天的你) |
|---|---|
| 复制整个文件夹,起名"主页2""主页3""最终版""真·最终版" | 一条命令存档,自动记日期、记谁改的、记改了什么 |
| 改坏了想回去?只能找旧副本,还分不清哪个是哪个 | 随时"读档"回到任何一次存档 |
| 文件夹越堆越多,占硬盘还乱 | 一个文件夹里装着全部历史,清爽 |
🎮 总比喻:Git 就是打游戏的存档系统。平时打 boss 前存档,打输了读档重来——Git 给代码干的就是这件事。
⏳ 所以本课标题叫"时间机器":改坏了?坐时光机回去。想看看上周的代码长啥样?翻存档。
Git 的世界里有三个地方,你的文件在它们之间流动(标序号):
| 序号 | 地方 | 比喻 | 怎么进出 |
|---|---|---|---|
| ① | 工作区 | 超市货架(随便拿、随便改) | 你的文件夹 |
| ② | 暂存区 | 购物车(挑好的放进来,还没付钱) | git add 放进 |
| ③ | 仓库 | 收货仓(付钱结账,正式存档) | git commit 结账 |
在正式开练前,先造一个练习文件夹(别拿主页练手!):
然后三个动作(标序号):
| 序号 | 命令 | 说明 |
|---|---|---|
| ① | git config --global user.name/email | 给自己署名。每个存档都会盖上"谁存的"——就像快递单上的寄件人。不署名,commit 会罢工 |
| ② | git init | 在文件夹里开店(生成一个隐藏的 .git 档案室)。比喻:租下店面,货架就位,历史从今天开始记 |
cmd 回车,或者文件夹空白处右键 → Git Bash Here。你平时跟 Claude 对话的那个窗口其实也是 Git Bash,直接在那敲也行。
在练习文件夹里建一个文件,比如 test.txt,里面随便写点字。然后每次存档的固定流程(标序号):
| 序号 | 命令 | 比喻 |
|---|---|---|
| ① | git status | 查购物小票:改了啥、买了啥,一目了然(最常用的命令,没事就敲它) |
| ② | git add . | 把文件全放进购物车。. 是"当前文件夹里所有改动"——比一个个点名省事 |
| ③ | git commit -m "说明" | 结账存档。-m 后必须带说明,一句话讲清这次改了啥,将来翻历史全靠它 |
| ④ | git log | 翻账本:每个存档的时间、署名、说明,还有一长串"存档编号" |
时间机器来了,两种后悔场景(标序号):
| 场景 | 命令 | 比喻 |
|---|---|---|
| ① 改坏了还没存 | git checkout -- 文件名 | Ctrl+Z 的高级版:Ctrl+Z 只能回到几分钟前,它直接回到上次存档(注意:没存过的改动会丢,慎用) |
| ② 回看旧版本 | git log 找编号 → git checkout 编号 | 坐时光机回过去"参观",参观完敲 git checkout main 回现代 |
git log 里每行 commit 后面那串 40 位的字母数字就是编号(像身份证号)。用的时候写前 6 位就够了。你的每个存档都有唯一编号,所以永远丢不了。
git练习 文件夹 → git init → 建一个 test.txt 写几句话 → git add . → git commit -m "第一次存档"。git log 能看到一条记录。test.txt 内容改得乱七八糟 → 执行 git checkout -- test.txt → 打开文件,内容恢复成存档时的样子了吗?test.txt 里加几行字 → git add . + git commit -m "第二次存档" → git log 应该看到两条记录,编号还不一样。github.com 登录(用户名 ycx123)→ 右上角 New repository 建一个空仓库,名字就叫 git练习,别勾"Add a README"(保持全空)→ 建好后复制它给你的那两条命令,在 git练习 文件夹里执行(大概长这样):git remote add origin https://github.com/ycx123/git练习.gitgit push -u origin maingit push 就同步上云(这将成为你以后的日常动作)。
老规矩:卡住就把 Git Bash 里的报错原文发给 Claude。Git 常见的坑:① commit 前忘了 config 署名(报错会提示你是谁)② 中文文件夹路径在部分终端抽风(报错乱码就换英文名文件夹)③ push 前仓库不是空的(远程有 README 会冲突,建仓库时别勾)。
| 命令 | 一句话 |
|---|---|
git init ⭐ | 开店:文件夹变成仓库 |
git status ⭐ | 查账:看有什么改动(最常敲) |
git add . ⭐ | 进货:改动放进购物车 |
git commit -m "说明" ⭐ | 结账:正式存档 |
git log ⭐ | 翻账本:看存档历史 + 编号 |
git checkout -- 文件 ⭐ | 后悔药:放弃未存档的改动 |
git push ⭐ | 上云:存档同步到 GitHub |
| ⏳ | 第十四课(预告) | 把 Git 用回真项目:给 my-site 开店、天天存档上云——从"会敲命令"到"养成习惯" |
先做挑战,做完喊我检查!🚀