实践项目:用 Gemini CLI 管理开发环境
项目目标
通过本章的实践项目,您将:
- 🧹 清理冗余依赖,释放磁盘空间
- 🔧 优化系统 PATH 配置
- 🚀 建立高效的 AI 辅助工作流
- 📊 学会管理多个开发项目的环境
📹 课程视频
观看课程一和课程二的完整教学视频:
🎯 项目一:智能环境清理
许多开发者的电脑上都积累了大量不再使用的依赖和工具。让我们用 Gemini CLI 来一次彻底的清理。
项目背景
💭 真实案例
一位开发者使用 Gemini CLI 后,成功清理了 50GB 的冗余文件!包括:
- 过时的 node_modules 文件夹
- 重复的全局 npm 包
- 废弃的开发工具
- 临时构建文件
实践步骤
- 步骤 1:环境扫描
- 步骤 2:识别冗余
- 步骤 3:执行清理
全面扫描本地环境
gemini chat
您:请帮我扫描本地所有的开发环境、依赖和库,列出详细清单
Gemini:开始扫描您的开发环境...
📊 扫描结果:
1. Node.js 环境:
- 版本:v18.17.0, v16.20.0, v14.21.0
- 全局包:87 个(占用 2.3GB)
2. Python 环境:
- 版本:3.9.7, 3.8.10, 2.7.18
- pip 包:156 个(占用 4.1GB)
3. 项目文件夹:
- 检测到 23 个项目
- node_modules 总计:18.7GB
- 未使用超过 6 个月的:12 个
4. 开发工具:
- Docker 镜像:34 个(占用 12.3GB)
- VS Code 扩展:48 个
需要我详细分析哪个部分?
智能识别可清理项目
您:分析哪些是可以安全删除的冗余内容
Gemini:基于分析,以下内容可以安全删除:
🗑️ 可清理项目(预计释放 32.4GB):
1. 过时的 Node.js 版本:
❌ v14.21.0 - 已终止维护
✅ 保留 v18.17.0(LTS)
2. 重复的全局 npm 包:
❌ create-react-app@4.0.3 - 使用 npx 代替
❌ webpack@4.46.0 - 项目级安装更好
❌ gulp-cli@2.3.0 - 很久未使用
3. 废弃项目的 node_modules:
❌ ~/projects/old-todo-app (1.2GB)
❌ ~/projects/test-project-2022 (2.1GB)
❌ ~/experiments/abandoned-blog (1.8GB)
4. Docker 清理:
❌ 12 个悬空镜像 (4.2GB)
❌ 8 个停止的容器 (1.1GB)
⚠️ 建议保留:
✅ 最近 3 个月内使用的项目
✅ 生产环境相关工具
✅ 个人配置文件
要开始清理吗?
安全地执行清理操作
您:好的,请帮我执行清理,但要先备份重要配置
Gemini:明智的选择!我会先备份重要配置再清理。
📦 备份阶段:
✓ 创建备份目录 ~/gemini-backup-2025-01-20
✓ 备份 .npmrc, .gitconfig
✓ 备份 VS Code 设置
✓ 导出已安装包列表
🧹 开始清理:
[1/5] 卸载过时 Node.js 版本...
✓ 已移除 v14.21.0
[2/5] 清理全局 npm 包...
✓ 卸载 create-react-app
✓ 卸载 webpack@4.46.0
✓ 卸载 gulp-cli
已释放:856MB
[3/5] 删除废弃项目...
✓ 删除 old-todo-app/node_modules
✓ 删除 test-project-2022/node_modules
✓ 删除 abandoned-blog/node_modules
已释放:5.1GB
[4/5] Docker 清理...
✓ 删除悬空镜像
✓ 删除停止的容器
已释放:5.3GB
[5/5] 清理系统缓存...
✓ npm 缓存已清理
✓ pip 缓存已清理
已释放:1.2GB
🎉 清理完成!
总计释放空间:32.4GB
备份位置:~/gemini-backup-2025-01-20
项目成果
💾 空间释放
32.4GB / 50GB
成功清理冗余文件
⚡ 性能提升
- npm 命令响应速度提升 40%
- 系统启动时间减少 15 秒
- 开发工具运行更流畅
🛤️ 项目二:PATH 环境优化
混乱的 PATH 配置会导致命令冲突和性能问题。让我们用 AI 来优化它。
常见 PATH 问题
🔄 重复路径
同一路径被多次添加,影响查找效率
❌ 无 效路径
指向不存在的目录,导致命令查找失败
🎭 顺序混乱
优先级设置不当,可能使用错误版本的工具
优化实践
- 分析 PATH
- 执行优化
- 验证结果
您:帮我分析系统 PATH,找出所有问题
Gemini:正在分析您的 PATH 配置...
🔍 PATH 分析报告:
当前 PATH 条目(按顺序):
1. /usr/local/bin ⚠️
2. /opt/homebrew/bin ✅
3. /usr/local/bin ⚠️ [重复]
4. ~/.npm-global/bin ✅
5. /usr/bin ✅
6. /opt/old-tools/bin ❌ [不存在]
7. ~/.npm-global/bin ⚠️ [重复]
8. /usr/local/go/bin ✅
9. /Applications/Docker.app/Contents/Resources/bin ❌ [Docker未安装]
10. /usr/local/bin ⚠️ [第3次重复]
📊 问题汇总:
- 3 个重复条目
- 2 个无效路径
- 建议调整优先级顺序
🎯 优化建议:
1. 用户级工具应优先于系统级
2. 常用工具路径应该靠前
3. 删除所有重复和无效条目
您:请帮我优化 PATH 配置
Gemini:我来帮您优化 PATH 配置。
📝 优化方案:
新的 PATH 顺序(从高到低优先级):
1. ~/.local/bin # 用户自定义脚本
2. /opt/homebrew/bin # Homebrew(macOS)
3. ~/.npm-global/bin # npm 全局包
4. /usr/local/go/bin # Go 语言
5. /usr/local/bin # 本地安装
6. /usr/bin # 系统命令
🔧 正在应用更改...
检测到您使用的是 zsh,更新 ~/.zshrc:
✓ 备份原始 .zshrc 到 .zshrc.backup
✓ 清理重复的 export PATH 语句
✓ 添加优化后的 PATH 配置
✓ 添加注释说明每个路径的用途
# 优化后的配置
export PATH="$HOME/.local/bin:$PATH"
export PATH="/opt/homebrew/bin:$PATH"
export PATH="$HOME/.npm-global/bin:$PATH"
export PATH="/usr/local/go/bin:$PATH"
🎉 优化完成!
执行以下命令使更改生效:
source ~/.zshrc
或重新打开终端窗口。
您:验证 PATH 优化结果
Gemini:让我验证优化后的 PATH 配置...
✅ 验证结果:
1. 重复检查:
✓ 无重复路径
2. 有效性检查:
✓ 所有路径均存在且可访问
3. 命令可用性测试:
✓ node: /opt/homebrew/bin/node (v18.17.0)
✓ npm: /opt/homebrew/bin/npm (v9.8.1)
✓ git: /usr/bin/git (v2.39.3)
✓ python: /usr/bin/python3 (v3.11.6)
✓ go: /usr/local/go/bin/go (v1.21.5)
4. 性能测试:
命令查找时间:
优化前:平均 23ms
优化后:平均 8ms
⚡ 提升 65%!
5. 潜在冲突检查:
✓ 未发现命令版本冲突
🎊 PATH 优化成功!您的开发环境现在更加高效。
🚀 项目三:Git 工作流自动化
告别繁琐的 Git 命令,让 AI 处理所有版本控制操作。
场景实践
- 日常开发
- 解决冲突
- 代码审查
场景:早晨开始工作
您:早上好,我要继续昨天的功能开发
Gemini:早上好!让我帮您准备开发环境。
🔍 检查项目状态...
📊 项目:awesome-web-app
📍 当前分支:feature/user-auth
📝 未提交更改:3 个文件
昨日工作总结:
- 完成了登录表单 UI
- 添加了表单验证逻辑
- TODO: 连接后端 API
今日建议:
1. 先提交昨天的更改
2. 拉取主分支最新代码
3. 继续 API 集成工作
要我帮您执行这些操作吗?
您:好的,先提交昨天的更改
Gemini:正在提交您的更改...
查看更 改内容:
- src/components/LoginForm.jsx (新增)
- src/utils/validation.js (新增)
- src/styles/auth.css (新增)
生成提交信息:
"feat: 实现用户登录表单UI和验证逻辑
- 创建响应式登录表单组件
- 添加邮箱和密码验证规则
- 应用自定义样式主题"
✓ 更改已提交
✓ 推送到远程仓库
现在拉取最新代码...
✓ 主分支已更新,无冲突
您可以开始今天的开发了!
场景:处理合并冲突
您:拉取主分支代码并合并
Gemini:正在执行合并操作...
⚠️ 检测到合并冲突!
冲突文件:
1. src/config/api.js
2. package.json
让我帮您分析冲突:
📄 src/config/api.js 的冲突:
<<<<<<< HEAD (您的更改)
const API_BASE = 'http://localhost:3000/api'
const AUTH_ENDPOINT = '/auth/login'
=======
const API_BASE = 'https://api.example.com'
const AUTH_ENDPOINT = '/v2/auth/signin'
>>>>>>> main
分析:看起来主分支更新了 API 地址到生产环境。
建议解决方案:
const API_BASE = process.env.REACT_APP_API_URL || 'http://localhost:3000/api'
const AUTH_ENDPOINT = '/v2/auth/signin'
这样可以同时支持开发和生产环境。
要应用这个解决方案吗?
您:应用建议的解决方案
Gemini:正在解决冲突...
✓ 已更新 src/config/api.js
✓ 已解决 package.json(保留两边的新依赖)
冲突解决完成!现在提交合并结果...
✓ 合并提交完成
✓ 推送到远程仓库
您的分支现在与主分支保持同步!
场景:准备代码审查
您:我完成了用户认证功能,帮我准备代码审查
Gemini:好的,我来帮您准备代码审查。
📋 功能开发总结:
分支:feature/user-auth
提交数:8 个
修改文件:15 个
新增代码:+542 行
删除代码:-87 行
🔍 代码质量检查:
1. 代码规范:
✓ ESLint 检查通过
✓ 格式化符合标准
2. 测试覆盖:
⚠️ 当前覆盖率:72%
建议:添加错误处理的测试用例
3. 安全检查:
✓ 未发现硬编码密钥
✓ API 调用使用 HTTPS
⚠️ 建议:添加请求速率限制
4. 性能考虑:
✓ 组件使用 React.memo 优化
✓ API 请求有适当的缓存
📝 生成 PR 描述:
## 概述
实现了完整的用户认证功能,包括登录、注册和会话管理。
## 更改内容
- ✨ 新增登录/注册表单组件
- 🔒 实现 JWT token 管理
- 🎨 添加认证相关 UI 样式
- ⚡ 优化 API 请求性能
## 测试
- 单元测试覆盖率 72%
- 手动测试各种边界情况
- 兼容性测试通过
## 截图
[自动生成的功能截图]
要创建 Pull Request 吗?
🏆 项目四:构建个人工作流
每个开发者都有独特的工作习惯。让我们用 Gemini CLI 打造专属的自动化工作流。