Git 状态回滚
课程导读
这节课介绍如何用 Git 管理项目版本。Claude Code 的对话回退只能处理一部分由它自己产生的改动,而 Git 可以记录整个项目的文件状态,更适合作为真正的版本保险。
一、初始化 Git 仓库
Git 在前面的环境配置中通常已经安装好了。
先进入项目目录,然后执行:
bash
git init执行后,当前项目文件夹就会变成一个 Git 仓库。
二、查看 AI 改了哪些文件
点击 Warp 右上角的变更统计,可以打开 Code Review 面板。
这个面板主要用来查看差异:
| 内容 | 含义 |
|---|---|
| 绿色内容 | 新增的代码 |
| 红色内容 | 删除的代码 |
| 文件列表 | 本次发生变化的文件 |
它的好处是可以清楚看到 AI 到底改了哪里。
三、把差异添加到对话里
Code Review 面板不只是用来看差异,也可以把某段改动添加到 Claude Code 的对话里。
常见用法:
| 操作 | 用法 |
|---|---|
| 添加整个文件改动 | 选择一个文件,把这段改动作为上下文继续提问 |
| 添加几行代码 | 选中某几行代码,再添加到对话 |
| 添加评论 | 在多个位置写评论,最后一次性发给 Claude Code |
四、安装和打开 UGit
Git 本身是命令行工具。为了让新手更直观地理解提交和回退,这里推荐使用可视化工具 UGit。
UGit 官网安装后打开 UGit,如果出现冲突提示,可以先直接关闭。
第一次使用建议先做两个设置:
- 点击设置。
- 进入 Git 设置。
- 填写用户名和邮箱。
用户名和邮箱会记录在每一次提交里,用来标记这个版本是谁提交的。
设置完成后,选择打开仓库,打开刚才的项目文件夹。
五、理解变更和待提交
打开仓库后,刚创建的 Python 文件通常会出现在「变更」列表里。
| 状态 | 含义 |
|---|---|
| 变更 | 所有产生变动的文件(新建、修改、删除);还没放进「待提交」的都会显示在这里 |
| 待提交 | 已添加至待提交、准备写入这次版本的文件 |
Git 不会默认管理所有文件。
因为有些文件不需要版本管理,比如临时文件、缓存文件、大型素材文件等。所以 Git 会先要求你明确哪些文件要纳入版本管理。
不需要提交的文件怎么处理
记住一个原则:只有「待提交」里的文件才会进入这次提交。 留在「变更」里的文件,不会自动被提交。
| 情况 | 操作 |
|---|---|
| 这次先不提交,以后可能还会提交 | 留在「变更」里,不要加入「待提交」 |
| 永远不想提交,比如缓存、临时文件、密钥 | 在不想提交的文件上右键,选择忽略(忽略的选项含义见下表),或直接在 Claude Code 里说 |
| 已经误加到「待提交」了 | 在「待提交」里选中该文件,点击 移出待提交,文件会回到「变更」 |
方法一:在 UGit 里忽略
.gitignore 是 Git 的「忽略清单」,作用是告诉 Git:哪些文件不需要纳入版本管理。
比如临时文件、缓存、日志、编译产物、个人本地配置、密钥文件等。这些文件可能只对你本机有用,或者每次运行都会自动生成,不适合提交到仓库里。
UGit 的 忽略 菜单,本质上是在帮你快速往 .gitignore 里添加规则,并让 Git 停止跟踪对应文件。菜单会根据当前文件自动给出选项,常见有三种:
| 选项 | 会写入的规则 | 适合场景 |
|---|---|---|
| 该文件并停止跟踪 | 如 方法.txt | 只想忽略当前这一个文件 |
后缀为 .xxx 的文件并停止跟踪 | 如 *.txt | 整个项目里这种后缀都是临时文件;若同后缀里还有说明文档、示例数据,就不要选 |
"文件夹名" 所有文件并停止跟踪 | 如 data/ | 整个文件夹都是缓存、下载文件或生成结果;若文件夹里还有代码、文档、配置,就不要选 |
拿不准时,优先选 该文件并停止跟踪,影响范围最小。后两个是按后缀或整个文件夹批量忽略,新手很少用到。
选完后,UGit 会自动写入 .gitignore,对应文件会从变更列表里消失,之后也不会被误提交。
方法二:让 Claude Code 帮你忽略
不想打开 UGit 时,可以直接在 Claude Code 里说明要忽略哪些文件。Claude Code 会编辑 .gitignore,效果和 UGit 里点「忽略」一样。
示例提示词:
text
把 方法.txt 加入 .gitignore,以后不要提交这个文件。六、提交第一个版本
把文件添加到待提交后,就可以提交版本。
提交前注意两件事:
| 项目 | 建议 |
|---|---|
| 推送到远程 | 如果当前没有绑定 GitHub 仓库,先取消勾选 |
| 提交信息 | 写清楚这次版本做了什么 |
GitHub 是什么
GitHub 是一个放在云端的代码托管平台。你可以把本地的 Git 仓库备份到网上,也可以和别人协作、分享代码。
个人学习和小项目,一般只在本地用 Git 提交、回退就够了。
如果以后想把代码备份到云端,可以自己去 GitHub 注册一个免费账号,再在 UGit 里绑定远程仓库。注册不需要付费,打开官网按提示填写邮箱、密码、用户名即可,也可以用 Google 或 Apple 账号直接登录注册。这部分不是本节课的重点,用到时再配置即可。
GitHub 官网七、回退到旧版本
在 UGit 历史面板里,右键选中某个提交记录,常见有两个选项:
回退此提交
- 不删旧记录,在最新位置再提交一条「反向修改」
- 只把这一次提交改过的内容改回去,历史还在,时间线继续往前走
- 团队项目更常用,因为不会改写已有历史
- 本地独自开发不一定常用:一次只能撤销某一个提交,后面若还有相关改动可能冲突
重置 main 到此版本
- 把当前分支直接指回选中的版本
- 项目整体回到那个时间点,后面的版本记录被移除,也就是「时光倒流」
- 逻辑更直观,适合 AI 改坏后整体回到某个安全版本
八、Mixed 和 Hard 的区别
选择 重置 main 到此版本 时,常见还有两个子选项:
Mixed
- 版本记录回到旧版本,但后面的改动还留在变更列表里
- 适合不想保留后面的版本记录,但还想重新检查这些改动、再决定要不要提交
Hard
- 版本记录回到旧版本,后面的改动也从文件里消失
- 新手最常用;比如 AI 大改前先提交一个安全版本,改坏了就用
Hard回到那个版本 - 会放弃当前所有本地更改,点击前确认没有自己手动写的重要内容
九、在 Claude Code 里提交
日常写代码时,不一定每次都要打开 UGit 提交。
可以直接让 Claude Code 帮你提交。
示例提示词:
text
将我手动做的更改提交。Claude Code 会检查当前变更,并在确认后完成提交。
提交完成后,Warp 右上角的差异数字会消失,UGit 历史记录里也会出现新的提交。
十、使用 Commit Commands 插件
更方便的方式是安装 Claude Code 的提交插件。
进入插件管理器:
text
/plugin搜索并安装:
text
commit commands安装完成后重新加载插件:
text
/reload-plugins之后可以通过斜杠命令提交:
text
/commit-commands:commitClaude Code 会自动整理本次变更,并生成合适的提交信息。
十一、这节课只记住两步
Git 的概念很多,但日常使用先记住两个动作就够了。
| 动作 | 什么时候用 |
|---|---|
| 提交 | 当前代码完成一个小任务,确认可以保存时 |
| 回退 | AI 改坏了,或者想回到之前某个安全版本时 |
先把“提交”和“回退”这两个习惯建立起来,就已经能解决大部分新手开发中的版本安全问题。
