From e0b066f5e5fbfa24ffbfe3e6f2767dd4559c3c8d Mon Sep 17 00:00:00 2001 From: PTah Date: Thu, 28 May 2026 09:26:06 +1000 Subject: [PATCH] fix(deploy): recover from diverging git after force-push on kalinamall Co-authored-by: Cursor --- deploy/sac-deploy.sh | 15 +++++++++++++-- docs/deployment.md | 9 +++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/deploy/sac-deploy.sh b/deploy/sac-deploy.sh index 5a08dfa..045f268 100644 --- a/deploy/sac-deploy.sh +++ b/deploy/sac-deploy.sh @@ -30,8 +30,19 @@ fi log "Выравнивание владельца ${APP_ROOT} → ${APP_USER}:${APP_USER}" chown -R "${APP_USER}:${APP_USER}" "${APP_ROOT}" -log "git pull" -sudo -u "${APP_USER}" git -C "${APP_ROOT}" pull --ff-only +log "git fetch + sync" +sudo -u "${APP_USER}" git -C "${APP_ROOT}" fetch --prune + +if sudo -u "${APP_USER}" git -C "${APP_ROOT}" pull --ff-only 2>/dev/null; then + log "git: fast-forward OK" +else + UPSTREAM="$(sudo -u "${APP_USER}" git -C "${APP_ROOT}" rev-parse --abbrev-ref '@{u}' 2>/dev/null || true)" + if [ -z "${UPSTREAM}" ]; then + UPSTREAM="origin/main" + fi + log "WARN: fast-forward невозможен (часто после force-push на kalinamall) — reset --hard ${UPSTREAM}" + sudo -u "${APP_USER}" git -C "${APP_ROOT}" reset --hard "${UPSTREAM}" +fi if [ ! -f "${CONFIG_FILE}" ]; then die "Нет конфига: ${CONFIG_FILE}" diff --git a/docs/deployment.md b/docs/deployment.md index b02c517..d5f1c5c 100644 --- a/docs/deployment.md +++ b/docs/deployment.md @@ -115,6 +115,15 @@ sudo /opt/sac-deploy.sh Установка скрипта (один раз): `sudo cp /opt/security-alert-center/deploy/sac-deploy.sh /opt/sac-deploy.sh && sudo chmod 755 /opt/sac-deploy.sh` +После **force-push** на git.kalinamall.ru обычный `git pull` на сервере падает с «diverging branches». Скрипт `sac-deploy.sh` (актуальная версия) делает `fetch` и при необходимости `reset --hard` к upstream. **Один раз вручную**, если на сервере ещё старый скрипт: + +```bash +sudo -u sac git -C /opt/security-alert-center fetch --prune +sudo -u sac git -C /opt/security-alert-center reset --hard origin/main +sudo cp /opt/security-alert-center/deploy/sac-deploy.sh /opt/sac-deploy.sh +sudo /opt/sac-deploy.sh +``` + Подробности: [install-ubuntu-24.04-native.md §13](install-ubuntu-24.04-native.md#13-обновление-sac-деплой). ---