4.0 KiB
4.0 KiB
name, description, group
| name | description | group |
|---|---|---|
| 容灾备份 | 代码修改前自动备份。触发词:备份代码、创建快照、git stash、容灾、代码回滚、恢复代码、安全气囊。在大幅修改代码前自动执行Git快照,项目出错后可瞬间复原。 | 金 |
容灾备份
代码修改的"安全气囊"。
核心理念
在大幅修改代码前,自动执行备份:
- Git stash(临时保存)
- Git commit(快照点)
- 文件复制(物理备份)
备份策略
┌─────────────────────────────────────────────────────────┐
│ 备份决策流程 │
├─────────────────────────────────────────────────────────┤
│ │
│ 修改类型判断 │
│ │ │
│ ┌────┴────┬────────────┐ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ 小改动 中等改动 大改动 │
│ <10行 10-100行 >100行 │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ 无需备份 Git stash Git commit │
│ + 分支 │
│ │
└─────────────────────────────────────────────────────────┘
备份命令
快速 Stash(推荐)
# 保存当前工作
git stash push -m "AI备份: $(date +%Y%m%d_%H%M%S)"
# 查看stash列表
git stash list
# 恢复最近的stash
git stash pop
# 恢复指定stash
git stash apply stash@{0}
创建备份分支
# 创建备份分支
git checkout -b backup/$(date +%Y%m%d_%H%M%S)
# 提交快照
git add -A
git commit -m "🔒 AI备份快照"
# 返回原分支
git checkout -
物理备份
# 复制整个项目
cp -r /path/to/project /path/to/project_backup_$(date +%Y%m%d_%H%M%S)
自动备份协议
当检测到以下操作时,自动执行备份:
| 操作类型 | 备份方式 |
|---|---|
| 删除文件 | Git stash |
| 重命名超过5个文件 | Git commit |
| 修改超过100行 | Git commit |
| 重构/重写 | 备份分支 |
| 删除目录 | 物理备份 |
恢复命令
从 Stash 恢复
# 查看stash内容
git stash show -p stash@{0}
# 恢复并保留stash
git stash apply stash@{0}
# 恢复并删除stash
git stash pop stash@{0}
从备份分支恢复
# 查看备份分支
git branch | grep backup
# 对比差异
git diff backup/20260119_1000
# 恢复特定文件
git checkout backup/20260119_1000 -- path/to/file
完全回滚
# 硬重置到某个提交
git reset --hard <commit-hash>
# 或者从备份分支恢复
git checkout backup/20260119_1000
git checkout -b recovered
备份脚本
#!/bin/bash
# 快速备份脚本
# 用法: ./backup.sh "备份说明"
MESSAGE=${1:-"AI自动备份"}
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
# 检查是否有未提交的更改
if [[ -n $(git status -s) ]]; then
git stash push -m "$MESSAGE - $TIMESTAMP"
echo "✅ 已创建stash备份: $MESSAGE - $TIMESTAMP"
else
echo "ℹ️ 没有需要备份的更改"
fi
安全原则
- 大改动前必须备份
- 备份信息要有意义(时间+描述)
- 定期清理过期备份(保留7天)
- 重要项目用物理备份