---
description: Backup main branches then push all repos to origin in sequence
---

# Backup & Push All Repos

Combines `/repo_backup-main-branch` and `/repo_push-repos` into a single sequential workflow. Ideal for end-of-session save-all.

## Step 1: Backup main branches

Creates timestamped backup branches with smart duplicate detection.

// turbo
Run `bash /Users/sd9235/code/mygh/learning_ai_common_plat/scripts/backup-main.sh`

## Step 2: Push all repos to origin

// turbo

```bash
while IFS= read -r repo; do
  [[ -z "$repo" || "$repo" =~ ^# ]] && continue
  echo "━━━ Pushing $repo ━━━"
  (cd ~/code/mygh/$repo && git push origin main 2>&1)
done < ~/code/mygh/learning_ai_common_plat/.windsurf/workflows/repos.txt
echo ""
echo "✨ All repos pushed!"
```

## What it does:

1. **Backup** — creates timestamped backup branches, cleans up old ones (7 days), skips duplicates
2. **Push** — pushes `main` to `origin/main` for all repositories listed in the canonical `repos.txt`

## Repositories:

See `repos.txt` for the canonical list of all workspace repositories.

## When to use:

- End of a work session
- Before switching machines
- After a batch of commits across repos
- Anytime you want a safe checkpoint + sync to remote

## Notes:

- Backup runs first so the backup branch includes the latest local commits
- Push only pushes `main` — backup branches are pushed by the backup script itself
- If push fails (diverged remote), run `/repo_sync-repos` first to pull
