单元二 和 AI 第一次合作 · 第 8 课

Git:给文件夹存档

下一课 AI 就要动手改文件了。在那之前,先学会给文件夹存档:改坏了,一条命令回到过去。

本课目标

  • 安装并设置 Git。
  • 给练习包做第一个存档。
  • 会查看改了什么,会把改动撤销。

先懂概念:游戏存档

玩游戏时,打 Boss 之前先存档,打输了读档重来。Git 就是给文件夹用的存档工具:

词意思
仓库(repository)用 Git 管理的文件夹
提交(commit)一个存档点,记录了此刻所有文件的样子,附一句说明
改动(diff)现在和上一个存档点相比,哪里变了
恢复(restore)把文件变回存档时的样子

AI 一次能改很多文件,光凭记忆根本说不清它改了什么。有了 Git,你能看清每一处改动,不满意就一键恢复。这就是为什么 Git 要放在让 AI 改文件之前学。

跟着做

1. 安装 Git

Windows,在 PowerShell 里运行:

winget install --id Git.Git -e

如果提示找不到 winget,就到 Git 官网 下载安装包,一路“下一步”使用默认选项即可。

macOS,在终端里运行:

git --version

如果还没装,系统会弹窗提示安装“命令行开发者工具”,点“安装”,等几分钟即可。

装好后重开终端,确认能看到版本号:

git --version

2. 告诉 Git 你是谁

每个存档都会记下是谁做的。把名字和邮箱换成你自己的(这里的名字用英文或拼音):

git config --global user.name "Xiao Ming"
git config --global user.email "[email protected]"
git config --global init.defaultBranch main
git config --global core.quotepath false

最后两行分别让新仓库的主分支叫 main,以及让 Git 正常显示中文文件名。这几条设置一次就够了,以后不用再设。

3. 做第一个存档

cd ~/ai-course/practice-pack
git init
git add .
git commit -m "原始文件"

依次是:把这个文件夹变成仓库;把所有文件加入这次存档;创建存档并写上说明。

存档说明一定要用 -m "说明" 的写法。如果忘了写 -m,Git 会打开一个叫 Vim 的编辑器等你写说明,新手很容易困在里面。万一进去了,按 Esc,输入 :q!,回车,就能退出。第 17 课会正式学 Vim。

看一看存档记录:

git log --oneline

4. 改一个文件,看看改动

用记事本或文本编辑打开 todo list.txt,在最后加一行“- 学完第 8 课”,保存。然后:

git status

Git 会告诉你 todo list.txt 被修改了(modified)。再看具体改了什么:

git diff

新增的行前面有 +,删掉的行前面有 -。如果屏幕底部出现冒号或 (END),按 q 退出。

5. 撤销改动

git restore "todo list.txt"
git status

再打开 todo list.txt,刚才加的那行没了。

6. 新文件怎么清理

git restore 只管存档里已有的文件。新冒出来的文件要用 git clean。先造一个新文件:

echo hello > test.txt
git status

test.txt 出现在 Untracked files(未跟踪的文件)里。先预览会删掉什么:

git clean -n

确认列出来的只有 test.txt,再真正删除:

git clean -f

你应该看到

最后再运行一次 git status,看到 nothing to commit, working tree clean,意思是文件夹和存档完全一致。

后悔药:记住这三条命令

以后 AI 把文件夹改得一团糟时,用下面的步骤回到上一个存档。注意:所有还没存档的改动都会被丢弃。

第一步,恢复被修改、删除、改名的文件:

git restore --staged .
git restore .

git restore --staged . 先取消已经交给 Git 暂存的改动(用过 git add 才会有,没有也不影响),git restore . 再把文件恢复原样。

第二步,预览新冒出来的文件和文件夹:

git clean -nd

仔细看列出来的清单,确认都是可以删除的,再进行第三步:

git clean -fd

git clean 删除的文件不进回收站,所以一定先预览、再删除,不要把这几条命令放在一起粘贴。

常见问题

提示 Please tell me who you are? 第 2 步的名字和邮箱没设好,重新运行那几条命令。

Windows 上看到 LF will be replaced by CRLF? 这是 Windows 和 macOS 换行符不同造成的提示,不影响使用,可以忽略。

git 找不到命令? 安装后要重开终端。还不行,回顾第 4 课的排查步骤。

自检

  • git log --oneline 能看到“原始文件”这个存档。
  • 我能用 git status 和 git diff 看出改了什么。
  • 我记住了后悔药的步骤,并且知道 git clean 要先预览、再删除。
  • 我知道万一进了 Vim 怎么退出。