Gitblit联邦同步出现origin/重复分支问题咨询
Let's break down why you're seeing this branch discrepancy between your old and new Gitblit federation servers—even with seemingly identical mirror configurations:
1. Gitblit版本差异(最可能的原因)
Gitblit的镜像同步逻辑在不同版本中有所调整。很可能你的旧服务器运行的是较早版本,镜像模式仅复制源仓库的本地分支(master、branch1);而新服务器使用的新版本默认保留了源联邦仓库的远程跟踪分支(origin/master、origin/branch1)。
- 验证方式: 访问两台服务器的Gitblit仪表盘底部,对比版本号。查看两个版本之间的发布说明,大概率能找到关于镜像远程引用保留逻辑的变更记录。
2. 隐藏的默认配置变更
即便你设置了相同的显式联邦属性,新版本Gitblit可能调整了一些不太显眼的镜像相关默认配置。比如:
federation.<yourName>.fetchRemoteBranches: 旧版本可能默认false,新版本默认true全局配置
git.mirrorRemoteRefs,用于控制是否镜像远程跟踪引用验证方式: 从两台服务器的管理面板下载完整的
gitblit.properties文件,进行逐行对比。不要只检查你手动设置的属性,留意所有联邦/镜像相关的默认值是否发生了变化。
3. 初始仓库设置差异
联邦仓库的初始创建方式会影响分支行为:
旧服务器可能从一开始就严格按照镜像模式配置,Gitblit初始化时自动忽略了远程跟踪分支。
新服务器的仓库如果是先手动克隆(而非通过Gitblit的联邦设置)再转为镜像模式,可能会保留克隆时生成的远程跟踪分支。
验证方式: 回顾两台服务器的搭建历史。对于新服务器,尝试删除联邦仓库,直接通过Gitblit的联邦配置面板重新创建(不要手动克隆),观察额外分支是否消失。
4. 底层Git版本差异
Gitblit依赖系统中的Git可执行文件。如果新服务器运行的Git版本更新,其镜像/克隆行为可能不同——比如新版本Git默认镜像时会拉取远程跟踪分支,而旧版本不会。
- 验证方式: 分别SSH到两台服务器,执行
git --version对比安装的Git版本。
内容的提问来源于stack exchange,提问作者Steph




