无Git环境下如何临时备份当前文件夹并实现测试后回滚及备份删除
无Git实现目录临时备份与恢复方案
以下方案可以完全替代你给出的Git工作流,适配不同操作系统:
类Unix系统(Linux/macOS)
直接使用系统自带的tar命令完成打包备份:
- 备份当前目录所有内容到临时隐藏压缩包
tar czf .temp_workdir_backup.tar.gz .
- 运行你需要的测试命令,期间产生的所有文件修改、新增、删除操作都不影响备份内容
- 恢复备份(覆盖所有变更,等价于
git checkout .)
# 先删除当前目录所有内容 rm -rf ./* ./.* 2>/dev/null # 解压备份恢复初始状态 tar xzf .temp_workdir_backup.tar.gz
- 删除备份文件
rm -f .temp_workdir_backup.tar.gz
如果有不需要备份的大体积目录(比如依赖文件夹、日志目录),可以在备份命令中加排除规则,示例:
# 排除node_modules和logs目录 tar czf .temp_workdir_backup.tar.gz --exclude=node_modules --exclude=logs .
Windows系统
CMD 命令提示符方案
使用系统自带的xcopy命令完成备份:
- 备份当前目录到临时隐藏文件夹
xcopy *.* .temp_workdir_backup\ /E /H /C /R /Q /Y
- 运行测试命令
- 恢复备份
:: 删除当前目录所有内容 del /q /s *.* && for /d %p in (*) do rmdir /s /q "%p" :: 从备份文件夹恢复内容 xcopy .temp_workdir_backup\*.* .\ /E /H /C /R /Q /Y
- 删除备份
rmdir /s /q .temp_workdir_backup
PowerShell 方案
使用系统自带的压缩归档命令:
- 备份当前目录到临时压缩包
Compress-Archive -Path * -DestinationPath .temp_workdir_backup.zip -Force
- 运行测试命令
- 恢复备份
# 删除当前目录所有内容 Remove-Item * -Recurse -Force # 解压备份恢复初始状态 Expand-Archive -Path .temp_workdir_backup.zip -DestinationPath . -Force
- 删除备份
Remove-Item .temp_workdir_backup.zip -Force
内容的提问来源于stack exchange,提问作者User12547645
相关产品推荐
相关产品推荐

