现在用AI,只会在网页版当聊天机器人用吗?那你就out了。
Gemini CLI 是 Google 推出的终端 AI 助手。相比于网页版,命令行工具在处理本地文件、读取项目上下文方面有着天然优势。对于开发者而言,它不仅仅是一个聊天机器人,更是一个能直接读取代码、执行脚本并生成结果的终端副驾驶。
以下整理了一些 Gemini CLI 深度使用的实用技巧,涵盖了自定义指令、终端交互以及安全回滚等核心功能。
安装Gemini CLI
Gemini CLI 依赖 Node.js 运行环境。为了保持系统整洁并实现多版本共存。
1. 配置 Node.js 环境
使用 ServBay 来配置环境。ServBay 支持 Node.js 12 到 24 的全版本覆盖,且不同版本间互不冲突,非常适合开发环境的隔离。
打开 ServBay 的服务管理面板,找到语言运行环境设置:
在左侧菜栏单中选择「软件包」,选择Node.js。
点击绿色按钮下载,Gemini CLI要求 Node.js 20 + 的环境。
在终端中检查环境是否已准备好。
node -v安装 Gemini CLI
环境就绪后,直接在终端执行安装命令。
npm install -g @google/gemini-cli安装完成后,在终端输入gemini即可启动交互界面。
Gemini CLI 的实用指南
GEMINI.md:项目的出厂设置
在项目根目录下创建一个名为GEMINI.md的文件,这个是起说明书的作用。每当 Gemini CLI 在该目录下启动时,会自动读取此文件。
这能解决“每次开启新会话都要重复告知 AI 项目规则”的这个问题。建议在文件中定义技术栈、代码规范以及常用脚本。
示例GEMINI.md内容:
# 项目上下文配置 ## 核心技术栈 - 框架: Next.js (App Router) - 样式: Tailwind CSS - 状态管理: Zustand ## 开发规范 - 组件: 优先使用函数式组件,必须包含 TypeScript 接口定义。 - 路径: 使用 `@/components` 等别名,避免相对路径 `../../`。 - 提交: Commit 信息需遵循 Conventional Commits 规范。 ## 常用指令速查 - 启动开发环境: `npm run dev` - 类型检查: `npm run type-check` - 生产构建: `npm run build`有了这个文件,后续只需发出“帮我写一个用户卡片组件”的指令,Gemini 就会自动遵循 Next.js + Tailwind CSS + TypeScript 的规范,无需额外强调。
终端模式:不离开对话直接干活
Gemini CLI 的一个好用的功能是它内置了终端命令模式。开发者不需要在 AI 对话框和系统终端之间来回切换窗口。
在对话输入框里,输入!就可以切换到命令执行状态。
场景:AI 刚改完代码,我想立刻跑一下测试,或者看看文件生成了没。
操作:直接输入
!npm run test或!ls -la。
这样设计的好处是,所有的操作都在同一个窗口流里完成,思路不会被打断。
自定义指令 (.toml):把重复劳动自动化
Gemini CLI 可以用.toml文件定义快捷指令(Slash Commands),这样就可以把文件放在用户目录~/.gemini/commands/全局通用或项目根目录.gemini/commands/项目专用。
这就好比给 AI 设置了宏,把提示词变成简单的/命令。
示例:一键生成周报
在项目里创建.gemini/commands/report.toml:
# 文件: .gemini/commands/report.toml# 调用: /report description = "自动汇总本周工作内容"# 这是一个预设的提示词模板 prompt = """ 请读取最近 7 天的 git 提交记录,并检查 `src/` 目录下的最近修改文件。 请帮我生成一份周报,包含以下三点: 1. **核心进展**: 本周完成了哪些主要功能。 2. **问题解决**: 修复了哪些关键 Bug。 3. **下周计划**: 基于代码里的 TODO 注释,建议下周做什么。 输出格式要简洁清晰。 """以后每周五,只需要在终端输入/report,AI 就会自动去翻阅记录并写好周报,公司再也不会哔哔了。
进阶:动态参数与命令嵌入
这是 Gemini CLI 最强的功能点,在自定义指令里嵌入终端命令,让 CLI 先去执行系统命令,拿到结果后再喂给 AI。AI喂AI,闭环了属于是。
命令嵌入 (!{...})
使用!{命令}的语法,可以将终端命令的输出结果直接插入到提示词中。
实战:智能生成 Commit 信息
我们可以做一个指令,让 AI 写 Git 提交信息。
# 文件: .gemini/commands/git/commit.toml# 调用: /git:commit description = "分析暂存区,生成 Commit Message" prompt = """ 你是一个代码规范专家。请看下面 `git diff --cached` 的输出内容(即我暂存的代码修改),帮我写一个 Git Commit Message。 要求: 1. 格式符合 Conventional Commits 规范(如 feat: xxx, fix: xxx)。 2. 第一行简短总结,后面列出具体修改点。 修改内容如下: !{git diff --cached} """输入/git:commit时:
CLI 会在后台默默执行
git diff --cached。拿到代码差异的文本。
把文本塞进
!{...}的位置。发送给 Gemini。
这样生成的提交信息既精准又省事。
安全回滚:Checkpoint 机制
让 AI 直接改文件偶尔会出错。Gemini CLI 提供了一个 Checkpoint(检查点)机制,这不就是游戏的存档嘛。
如何使用
在设置文件settings.json中开启 Checkpoint 后,每当 AI 准备修改文件(比如写入代码)之前,CLI 会自动在后台做一个临时的 Git 快照,这并不会影响原本的 Git 历史。
使用/restore恢复
如果 AI 把代码改坏了:
输入
/restore查看存档列表。输入
/restore <ID>回滚。
这不仅会把文件恢复原样,还会把对话记录也倒退回修改前的状态,可以重新调整指令,让 AI 再试一次。
多目录协同
如果项目结构很复杂(比如前后端分离),Gemini CLI 支持同时挂载多个目录。
/directory add packages/backend,packages/frontend添加后,可以直接用@符号引用不同目录的文件:
"请对比 @packages/backend/api.ts 的接口定义,更新 @packages/frontend/api-client.ts 的类型。"
这就打破了目录的限制,让 AI 拥有了全局视野,就能更好地使唤它了。
总结
Gemini CLI 可以将 AI 的能力从聊天机器人延伸到了实际的执行层面。
用 ServBay 快速构建稳定的 Node.js 环境,利用GEMINI.md固化项目共识,再配合.toml自定义指令与终端注入打通本地工具链,开发者可以构建一套高度定制化的辅助工作流。加上 Checkpoint 回滚机制提供的安全保障,让 AI 介入复杂代码修改变得更加可控。
掌握这些技巧,不再是单纯地向 AI 索取代码片段,而是将其转化为一个懂项目上下文、能自动执行任务、且随时可撤销的本地开发协作者。
是不是感觉棒棒哒,快去试试吧。