dev-backup
Snapshot the current state of a named project for safe rollback.
Usage
Each project gets its own snapshot numbering. The project name is always the first argument.
# Backup any project
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
bash "$SCRIPT_DIR/dev-backup.sh" <project-name> --project-dir /path/to/your/project
# Example: backup a "my-app" project
bash "$SCRIPT_DIR/dev-backup.sh" my-app --project-dir /home/user/projects/my-app
# No --project-dir? Uses the current working directory
cd /home/user/projects/my-app
bash "$SCRIPT_DIR/dev-backup.sh" my-app
Naming
Snapshots are named per project:
- my-app-snapshot-1, my-app-snapshot-2, …
- another-project-snapshot-1, another-project-snapshot-2, …
Each project tracks its own counter independently.
Excluded from snapshot
.git, node_modules, .vite, .cache, *.log, .env, backups/
Restore
To restore a snapshot:
cp -r <backups-dir>/<project-name>-snapshot-3/ <your-project-dir>/
Or use the .latest symlink:
cp -r <backups-dir>/.latest/ <your-project-dir>/
Verification
After backup, confirm:
ls -la <backups-dir>/
You should see the project-prefixed snapshot and .latest symlink.