Заменить git pull на жёсткую синхронизацию обновлений
Этот коммит содержится в:
@@ -63,8 +63,24 @@ log "before version: $BEFORE_VERSION"
|
|||||||
write_state "running" "Получаем изменения из GitHub"
|
write_state "running" "Получаем изменения из GitHub"
|
||||||
run_step git fetch "$REMOTE" "$BRANCH"
|
run_step git fetch "$REMOTE" "$BRANCH"
|
||||||
|
|
||||||
write_state "running" "Применяем git pull"
|
TARGET_REF="${REMOTE}/${BRANCH}"
|
||||||
run_step git pull --ff-only "$REMOTE" "$BRANCH"
|
TARGET_COMMIT="$(git rev-parse "$TARGET_REF" 2>/dev/null || true)"
|
||||||
|
if [ -z "$TARGET_COMMIT" ]; then
|
||||||
|
log "ERROR: remote ref not found: $TARGET_REF"
|
||||||
|
write_state "error" "Не найден удалённый ref: $TARGET_REF"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
LOCAL_STATUS="$(git status --porcelain 2>/dev/null || true)"
|
||||||
|
if [ -n "$LOCAL_STATUS" ]; then
|
||||||
|
log "Local changes before update:"
|
||||||
|
printf '%s\n' "$LOCAL_STATUS" >> "$LOG_FILE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
write_state "running" "Синхронизируем исходники с GitHub"
|
||||||
|
log "Deploy mode: git reset --hard $TARGET_REF"
|
||||||
|
run_step git reset --hard "$TARGET_REF"
|
||||||
|
run_step git clean -fd
|
||||||
|
|
||||||
AFTER_COMMIT="$(git rev-parse HEAD 2>/dev/null || true)"
|
AFTER_COMMIT="$(git rev-parse HEAD 2>/dev/null || true)"
|
||||||
AFTER_VERSION="$(cat VERSION 2>/dev/null || echo unknown)"
|
AFTER_VERSION="$(cat VERSION 2>/dev/null || echo unknown)"
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user