Files
site-portfolio/docs/gitverse-sync.md
T

57 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Синхронизация `public` -> `gitverse`
## Назначение
Скрипт `sync-gitverse` копирует содержимое `public` в папку `gitverse`, затем выполняет коммит и пуш в репозиторий внутри `gitverse`.
## Запуск
- Через npm:
- `npm run sync-gitverse`
- Напрямую:
- `node scripts/sync-gitverse.mjs`
- С явными путями:
- `node scripts/sync-gitverse.mjs <sourceDir> <targetDir>`
По умолчанию:
- `sourceDir = public`
- `targetDir = gitverse`
## Что делает скрипт
1. Проверяет, что исходная папка существует.
2. В целевой папке удаляет всё, кроме:
- `.git`
- `.gitverse`
3. Копирует содержимое `public` в `gitverse` (файлы `.png` пропускаются — в деплое используются WebP и остальные форматы).
4. В репозитории `gitverse` выполняет:
- `git add .`
- `git commit -m "sync public YYYY-MM-DD HH:mm"` (только если есть изменения)
- `git push`
5. После успешного пуша открывает в системном браузере по умолчанию: `https://mamadaevv.gitverse.site/me/`
Если изменений после копирования нет, коммит и пуш не делаются.
## Инструкция для агента (Cursor)
Когда пользователь просит **выложить на GitVerse**, **собрать/задеплоить gitverse**, **синхронизировать с gitverse** или аналогично:
1. **Сборка `public/`:** если менялись `src/pages/**` или `src/partials/**` — `npm run build:pages`; если шрифты/Plyr/`package.json` или `scripts/copy-vendor.mjs` — `npm run build` (сначала `vendor:copy`, затем страницы). См. [`docs/vendor-assets.md`](vendor-assets.md).
2. **Синк и пуш:** выполни `npm run sync-gitverse` из корня. Нужны разрешения **network** и **git_write** (SSH на GitVerse, пуш из папки `gitverse`).
3. **Ожидания:** скрипт не копирует файлы `.png` в `gitverse`. После **успешного** `git push` открывается системный браузер с `https://mamadaevv.gitverse.site/me/`. Если изменений в `gitverse` после копирования нет — коммит/пуш не выполняются, браузер не открывается.
4. **Не вызывай** `sync-gitverse` без запроса пользователя: скрипт очищает целевую папку (кроме `.git` и `.gitverse`) и пушит в remote.
5. **Корневой git репозиторий** этого проекта считается **только локальным**: не пушь из корня в `origin` и не настраивай remote без явной просьбы пользователя с URL. Внешняя выкладка — через `gitverse`, не через `git push` в корне.
6. Деплой на VPS — отдельный сценарий, см. **`docs/vps-deploy.md`**.
Подробности и ограничения — в разделах выше.
## Требования
- В `gitverse` уже должен быть инициализирован git-репозиторий (папка `.git`).
- Должен быть настроен доступ на push (SSH-ключ/права).
## Важно
- Скрипт удаляет в `gitverse` все файлы и папки, кроме `.git` и `.gitverse`.
- Не запускай скрипт, если в `gitverse` есть локальные несохраненные изменения, которые нужно оставить.