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

3.9 KiB
Raw Blame History

Синхронизация 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
  1. Копирует содержимое public в gitverse (файлы .png пропускаются — в деплое используются WebP и остальные форматы).
  2. В репозитории gitverse выполняет:
    • git add .
    • git commit -m "sync public YYYY-MM-DD HH:mm" (только если есть изменения)
    • git push
  3. После успешного пуша открывает в системном браузере по умолчанию: 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.
  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 есть локальные несохраненные изменения, которые нужно оставить.