From 5346b8f5b405c323e87c62003fd31f77067e808d Mon Sep 17 00:00:00 2001 From: suerzzh Date: Thu, 27 Aug 2026 13:02:16 +0800 Subject: [PATCH] fix: preserve deployment backups during sync --- deploy/scripts/sync-build-deploy.sh | 4 ++-- docs/deployment-source.md | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/deploy/scripts/sync-build-deploy.sh b/deploy/scripts/sync-build-deploy.sh index f0f69be3..344165ea 100644 --- a/deploy/scripts/sync-build-deploy.sh +++ b/deploy/scripts/sync-build-deploy.sh @@ -48,8 +48,8 @@ fi log "同步源码:$current_sha -> $target_sha" git -C "$BASE_DIR" reset --hard "$target_sha" # Keep server-owned runtime files while removing unexpected untracked files. -git -C "$BASE_DIR" clean -fd -e deploy/env/ -e runtime-logs/ -e .source-deploy-state -unexpected="$(git -C "$BASE_DIR" status --porcelain --untracked-files=all | grep -v '^?? deploy/env/' | grep -v '^?? runtime-logs/' || true)" +git -C "$BASE_DIR" clean -fd -e deploy/env/ -e backups/ -e runtime-logs/ -e .source-deploy-state +unexpected="$(git -C "$BASE_DIR" status --porcelain --untracked-files=all | grep -v '^?? deploy/env/' | grep -v '^?? backups/' | grep -v '^?? runtime-logs/' || true)" [[ -z "$unexpected" ]] || fail "同步后工作区仍有未预期改动:$unexpected" monitoring_network="$(sed -n 's/^MONITORING_NETWORK_NAME=//p' "$ENV_FILE" | head -n 1 | tr -d "'\"")" diff --git a/docs/deployment-source.md b/docs/deployment-source.md index da2e8690..e305c42c 100644 --- a/docs/deployment-source.md +++ b/docs/deployment-source.md @@ -43,18 +43,18 @@ test "$(stat -c '%a' /opt/unispeaking/deploy/env/.env)" = 600 ## 同步工作区 -以下操作会让跟踪文件严格匹配远程 `main`,并删除工作区内未跟踪的临时文件;服务器私有 `.env` 和 `runtime-logs/` 会保留: +以下操作会让跟踪文件严格匹配远程 `main`,并删除工作区内未跟踪的临时文件;服务器私有 `.env`、`backups/` 和 `runtime-logs/` 会保留: ```bash cd /opt/unispeaking git remote set-url origin https://github.com/1024XEngineer/UniSpeaking.git git fetch --prune origin main git reset --hard origin/main -git clean -fd -e deploy/env/ -e runtime-logs/ -e .source-deploy-state +git clean -fd -e deploy/env/ -e backups/ -e runtime-logs/ -e .source-deploy-state git status --short ``` -`git status --short` 只能显示服务器保留的 `deploy/env/` 或 `runtime-logs/` 内容;若出现其他修改,应停止并人工确认。 +`git status --short` 只能显示服务器保留的 `deploy/env/`、`backups/` 或 `runtime-logs/` 内容;若出现其他修改,应停止并人工确认。 ## 安装定时部署 @@ -142,7 +142,7 @@ git log --oneline -10 ```bash git reset --hard -git clean -fd -e deploy/env/ -e runtime-logs/ -e .source-deploy-state +git clean -fd -e deploy/env/ -e backups/ -e runtime-logs/ -e .source-deploy-state systemctl start unispeaking-source-deploy.service journalctl -u unispeaking-source-deploy.service -n 200 --no-pager ```