Git 命令速查手册

为 Godot + AI 协作开发场景整理 · 核心目标:给 AI 的每一次改动留好退路

一、Git 的三个区域(理解这个就懂了一半)

① 工作区 Working Directory

你实际编辑的文件。AI 改的就是这里。

弓箭手.gd / 弓箭手.tscn
→git add .

② 暂存区 Staging Area

选中「要存哪些文件」的待办清单。

git add .
→git commit

③ 版本库 Repository

永久快照。存进去就丢不了。

git commit -m "说明"
记忆口诀:改文件 → git add .(选中)→ git commit(存档)。 status 是看现状,log 是翻历史。

二、最核心的四条命令

命令作用说明
git status 看现状 哪些文件改了(红色=改了没存,绿色=已选中待存)。显示 nothing to commit, working tree clean 就是最理想的状态
git add . 选中文件 把当前目录所有改动加入待存清单。. 代表全部,也可指定单个文件
git commit -m "说明" 拍快照存档 把暂存区内容永久记一笔。-m 后写说明,方便日后知道这次存了什么
git log --oneline 翻历史 列出所有快照。每行前面那串字符是快照编号,用来精确回到某一次

三、救命命令(做这一切的真正目的)

命令作用什么时候用
git checkout . 一键还原 AI 把项目改崩了——所有文件回到最近一次 commit 的状态。这是你做备份的核心价值
git diff 看改了什么 AI 改完后逐行检查它的改动。强烈建议每次都先看再决定留不留
git restore <文件> 还原单个文件 只想还原某一个文件,不想全部回滚
git reset --hard 彻底回退 连暂存区一起清干净(比 checkout 更狠,慎用)
⚠️ 铁律:让 AI 干大活之前,先 commit 一次。这样你就永远有明确的还原点,敢放手让它干活。

四、AI 协作开发的标准流程

1
工作到某个阶段,先存档
git add . → git commit -m "完成弓箭手移动"
2
让 AI 动手(Godot AI 会真改 .tscn / .gd 文件)
建议先开 Plan Mode 看方案,确认后再执行
3
检查 AI 改了什么
git diff —— 逐行对照,看有没有误删、误改
4
二选一
满意 → git add . + git commit -m "说明" 存下来
不满意 → git checkout . 一键还原,重来
5
循环
回到步骤 2,继续下一个任务

五、首次初始化(只做一次)

# ① 进项目目录(路径有空格,引号必须带)
cd "C:\Users\hudaw\Saved Games\Godot\AI"

# ② 初始化仓库(生成隐藏的 .git 文件夹)
git init

# ③ 建 .gitignore 排除缓存(必须在 add 之前!)
#    内容:.godot/  .import/  export.cfg  export_presets.cfg  .mono/

# ④ 配置身份(第一次 commit 前必做,一劳永逸)
git config --global user.name "hudaw"
git config --global user.email "hudaw@example.com"

# ⑤ 选中所有文件
git add .

# ⑥ 拍第一张快照
git commit -m "接入AI前的备份"

# ⑦ 验证
git status          # 期望:nothing to commit, working tree clean
git log --oneline    # 期望:显示一行 commit 记录
⚠️ .gitignore 的两个坑:
1. 第一行必须是 .godot/(前面有个点),少了点就拦不住几百 MB 的缓存目录
2. Windows 记事本保存时会偷偷加 .txt 后缀 → 保存类型选「所有文件」,文件名用双引号 ".gitignore" 包起来

六、完整命令速查表

配置(只做一次)

命令说明
git config --global user.name "名"设置用户名(全局,所有项目通用)
git config --global user.email "邮箱"设置邮箱(不验证真实性,格式对即可)
git config --list查看当前所有配置

日常操作

命令说明
git init把当前文件夹变成 git 仓库(只做一次)
git status看当前状态(最常用,随时可敲)
git add .选中所有改动
git add 文件名只选中指定文件
git commit -m "说明"存档
git commit -am "说明"add + commit 合并一步(仅限已跟踪的文件)

查看与对比

命令说明
git log --oneline简洁历史(一行一条)
git log详细历史(含作者、时间)
git diff看未暂存的改动内容
git diff --stat只看哪些文件改了、改了多少行
git ls-files列出已被 git 管理的所有文件

撤销与还原

命令说明
git checkout .还原所有文件到最近一次 commit(最常用)
git restore 文件名还原单个文件
git restore --staged 文件名把文件从暂存区撤回来(不改动文件内容)
git rm -r --cached 目录从版本库移除某目录,但保留硬盘上的文件
git reset --hard彻底回退,清空暂存区(慎用)

七、git status 输出怎么看

✅ 理想状态

  • nothing to commit, working tree clean
  • 说明所有改动都已存档,工作区干净
  • 此时可以放心让 AI 动手

🔴 有改动没存

  • 红色文件名 = 改了但还没 add
  • 需要先 git add . 再 commit
  • 或直接 git checkout . 丢弃这些改动

🟢 已选中待存

  • 绿色文件名 = 已 add,等着 commit
  • 敲 git commit -m "说明" 完成存档

八、Godot 项目专用 .gitignore

.godot/              # 导入缓存,几百 MB,必须排除
.import/
export.cfg
export_presets.cfg
.mono/
data_*/
mono_crash.*.json
验证是否生效:git ls-files | Select-String "\.godot/" —— 没输出就说明缓存被成功排除了。
为什么 Git 对 AI 开发特别重要:它不绑定任何工具。你在 Qwen Code、Kimi Code、Cursor 之间随便切换,同一个 .git 仓库都照样生效。而且 AI 自己也会读 git 状态、执行 git 操作——有版本管理的项目里,AI 的表现比在裸目录里可靠得多。