Nexora GitLab 远程同步
将远程 GitLab(git.xipugold.com)的仓库同步到本地 GitLab(192.168.1.235:3000),实现代码的本地化管理和双向追踪。
概述
Nexora Platform 的代码资产原托管在远程 GitLab 实例 git.xipugold.com(客户环境),需定期同步到本地 GitLab CE(192.168.1.235:3000,即 gitlab.nexora.restry.cn)以实现本地化管理、CI/CD 集成和代码安全备份。同步由 @nexora 的 nexora-ops Agent 执行。
同步机制
每个仓库配置双 remote:
- origin → 本地 GitLab(
192.168.1.235:3000),日常开发推拉 - upstream → 远程 GitLab(
git.xipugold.com),定期拉取上游更新
同步流程:
git fetch upstream— 从远程获取最新代码git merge upstream/main— 合并到本地分支git push origin— 推送到本地 GitLab
认证方式从 OAuth2 token 切换为 dora 账号密码认证(因远程 token 过期)。
同步结果
共涉及约 30 个仓库的同步管理:
| 状态 | 首次同步 (04-09) | 二次同步 (04-11) |
|---|---|---|
| ✅ 已同步/已最新 | 26 个 | 25 个 |
| 🔄 有新代码 | 2 个(app_xiao_shou_kotlin +1, sprin-boot-kotlin219 +4) | 3 个(pyerp_php +3, pyerp_web +4, hjhs +5) |
| ⏭️ 跳过 | 4 个(无 upstream) | — |
| ⚠️ 失败 | — | 1 个(wl_php 超时) |
常见问题
main 分支保护
本地 GitLab 的 main 分支默认开启保护,阻止强制推送。需临时解除保护 → 推送 → 恢复保护。首次同步时有 3 个仓库遇到此问题。
OAuth2 Token 过期
远程 GitLab 的 OAuth2 token 会过期,导致 git fetch upstream 认证失败。解决方案:改用账号密码认证(dora 账号)。
Unrelated Histories
hjhs 仓库因初始 import commit 与远程 clone 的 commit 历史不一致,需要 git merge --allow-unrelated-histories 强制合并。
wl_php 超时
wl_php 仓库在远程 fetch 时持续超时断开,疑似包含超大文件或仓库体积过大,未能成功同步。
相关页面
- nexora-platform — 平台总览
- nexora — Nexora Bot (运维管家)