// DOCS · 双端同步

双端同步 · Dual Sync

Win / mac 双机协作基础设施:网站代码 git 化部署 + 个人文件双向同步。本文说明架构与常用命令。

⚠️ 唯一铁律:绝不覆盖坤哥修改的线上网站文件。 其余都是手段。任何发布动作都先备份、可回滚。

1. 两大子系统

A. 网站代码 git 部署

~/Projects/site-code(真实编辑位置,Win /c/Users/Kun.li/Projects/site-code)
   │ git push(一次推双远端)
   ├─▶ GitHub: imlikun/site-code(备份A)
   └─▶ ECS 裸仓: /srv/sync/site-code.git(备份B,denyNonFastForwards 物理防覆盖)
            └─ post-receive hook → /www/wwwroot/preview.appin.site(预览,单向投影)
正式发布: /usr/local/bin/site-deploy.sh [commit](铁律守卫 + 自动备份 + 可回滚)

B. 个人文件双机同步

~/.sync/sync.sh  (11 命令:init/lock/unlock/heartbeat/pull/push/audit/status/handoff/takeover/restore)
配置: ~/.sync/sync.conf(HOST_NAME: Win=autumn, mac=mac)
仓库: sync-workspace(GitHub 备份A + ECS /srv/sync/backup.git 备份B + Gitee 对账)

2. 关键资源清单

3. 常用命令

个人文件同步

~/.sync/sync.sh status      # 查看双机同步状态
~/.sync/sync.sh push        # 本机 → 对端
~/.sync/sync.sh pull        # 对端 → 本机
~/.sync/sync.sh audit       # 差异对账

网站发布(ECS)

site-deploy.sh            # 发布 main(铁律守卫)
site-deploy.sh <commit>   # 发布指定 commit
site-deploy.sh --force    # 跳过守卫(慎用)

4. 注意事项