# code-snapshot **Repository Path**: wuke121/code-snapshot ## Basic Information - **Project Name**: code-snapshot - **Description**: 📸 通用代码快照工具 - 防止AI改坏代码,一键保存回滚 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-06 - **Last Updated**: 2026-07-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 📸 CodeSnapshot — 服务器代码快照工具 #### 一条命令就能用的代码版本控制,防止 AI 改坏代码回不来。
## 🚀 安装(一行命令) ```bash curl -fsSL https://gitee.com/wuke121/code-snapshot/raw/main/checkpoint.sh -o /usr/local/bin/checkpoint && chmod +x /usr/local/bin/checkpoint ``` ## 📖 使用 ```bash # 初始化(新项目首次使用) checkpoint /www/wwwroot/my-project setup # 保存快照(改代码前执行) checkpoint /www/wwwroot/my-project save # 查看历史 checkpoint /www/wwwroot/my-project log # 查看改动 checkpoint /www/wwwroot/my-project status # 回滚到上一个快照 checkpoint /www/wwwroot/my-project rollback # 回滚到第3个快照 checkpoint /www/wwwroot/my-project rollback 3 ``` ## 🌐 Web 可视化界面 把 `viewer.php` 放到项目目录(通常是 `public/` 或 Web 根目录),浏览器访问即可看到漂亮的快照管理界面。 界面功能:保存快照 | 查看历史 | 代码对比 | 一键回滚 > ⚠️ 如果出现 "dubious ownership" 错误,说明 Web 运行用户与文件所有者不一致。viewer.php 会自动尝试修复,若仍失败请用 root 手动执行: > ```bash > git config --system --add safe.directory /www/wwwroot/你的项目 > chown -R www-data:www-data /www/wwwroot/你的项目 > ``` > ⚠️ 部分服务器(如宝塔)默认禁用 `exec()`,需在 php.ini 的 `disable_functions` 中移除 `exec` ## 🐛 常见问题 ### "fatal: detected dubious ownership" Web 运行用户(如 www-data)与 Git 仓库所有者不一致。已内置自动修复,若手动修复: ```bash git config --system --add safe.directory /项目路径 chown -R www-data:www-data /项目路径 ``` ### "Call to undefined function exec()" PHP 禁用了 `exec()` 函数。编辑 `php.ini`,从 `disable_functions` 中移除 `exec`,然后重启 PHP-FPM。 ### Web 界面 404 确保 `viewer.php` 放在 Nginx/Apache 的 `root` 目录下(如 `public/`),而不是项目根目录。 ## ⚙️ 原理 本工具在项目目录创建本地 Git 仓库,每次 `save` 自动提交,`rollback` 通过 `git reset` 还原。 - ✅ 纯本地,不联网,密码不泄露 - ✅ 不依赖任何外部服务 - ✅ 秒级快照 & 回滚 ## 🔐 安全提醒 `.gitignore` 默认排除以下目录: - `uploads/` `downloads/` `temp/` `cache/` `node_modules/` - 请在初始化后手动编辑 `.gitignore`,把数据库配置文件等敏感文件加上 ## 📄 许可 MIT — 随便用,随便改