Files

4.1 KiB
Raw Permalink Blame History

name, description, group, triggers, owner, version, updated
name description group triggers owner version updated
容灾备份 代码修改前自动备份。触发词备份代码、创建快照、git stash、容灾、代码回滚、恢复代码、安全气囊。在大幅修改代码前自动执行Git快照项目出错后可瞬间复原。 备份、灾备、容灾、定时备份 金仓 1.0 2026-02-16

容灾备份

代码修改的"安全气囊"。

核心理念

大幅修改代码前,自动执行备份:

  • 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天
  • 重要项目用物理备份