diff --git a/deploy/update.sh b/deploy/update.sh index 12e4382..944b84b 100755 --- a/deploy/update.sh +++ b/deploy/update.sh @@ -59,11 +59,16 @@ if [ "$APP_IMAGE" = "glchat:local" ] || [ -z "${APP_IMAGE:-}" ]; then REPO_DIR="${GLCHAT_REPO_DIR:-$REPO_DIR_DEFAULT}" if [ -d "${REPO_DIR}/.git" ]; then log "обновляем исходники в ${REPO_DIR}" - git -C "$REPO_DIR" fetch --tags --depth 1 origin + # Без --depth: частичный fetch переводит обычный клон в shallow, и + # следующий `pull --ff-only` падает с «Not possible to fast-forward». + git -C "$REPO_DIR" fetch --tags origin || + die "не удалось получить обновления; проверьте доступ к ${REPO_DIR}" if [ -n "$TARGET_VERSION" ]; then - git -C "$REPO_DIR" checkout "$TARGET_VERSION" + git -C "$REPO_DIR" checkout "$TARGET_VERSION" || + die "не удалось переключиться на ${TARGET_VERSION}" else - git -C "$REPO_DIR" pull --ff-only + git -C "$REPO_DIR" pull --ff-only || + die "локальные изменения мешают обновлению: git -C ${REPO_DIR} reset --hard origin/main" fi log "пересобираем образ" docker build -t "${APP_IMAGE:-glchat:local}" \