fix(deploy): recover from diverging git after force-push on kalinamall

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-05-28 09:26:06 +10:00
parent 25a485fabb
commit e0b066f5e5
2 changed files with 22 additions and 2 deletions
+13 -2
View File
@@ -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}"
+9
View File
@@ -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-деплой).
---