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),定期拉取上游更新

同步流程:

  1. git fetch upstream — 从远程获取最新代码
  2. git merge upstream/main — 合并到本地分支
  3. 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 时持续超时断开,疑似包含超大文件或仓库体积过大,未能成功同步。

相关页面