try
目标
编辑文件前,为目标文件创建可回退的备份。
工作流程
- 确认文件存在且是目标文件
- 创建备份(默认不改动当前工作区;如需清桌编辑,将下方的
git stash create换为git stash push):
BACKUP_HASH=$(git stash create -u)
git stash store -m "backup:<file-path>" "$BACKUP_HASH"
-u(--include-untracked)将未跟踪的文件也纳入备份。
- 执行修改
- 如果结果满意,继续工作。
- 如果需要回滚:
git restore --source="$BACKUP_HASH" -- <file-path> 2>/dev/null \
|| git restore --source="${BACKUP_HASH}^3" -- <file-path>
约束
- 恢复时只操作目标文件,不影响其他已 stash 的内容
- 不执行破坏性 git 命令
- 默认不包含
.gitignore中的文件(需备份时用-a/--all替代-u)
若项目不是 git 仓库,告知用户无法执行。