该功能最初由 ayaka-notes/ayakaleaf-pro 开发。
1
启用 git-bridge(仅限 Toolkit 用户)
如果你使用的是 Toolkit,请在 除非同时设置了
config/overleaf.rc 中进行如下设置以启用 git-bridge:config/overleaf.rc
SERVER_PRO=true,否则 Toolkit 会忽略此设置。无需其他操作:Toolkit 会自行为 sharelatex 容器设置 GIT_BRIDGE_HOST、GIT_BRIDGE_PORT 和 V1_HISTORY_URL,因此请跳过下面两个 Docker Compose 步骤。运行 bin/up 重新创建容器。2
添加 git-bridge 容器(仅限 Docker Compose 用户)
对于使用自定义 请使用与
docker-compose.yml 的用户,请将以下容器配置添加到你的 compose 文件中:docker-compose.yml (git-bridge service)
sharelatex 镜像相同的标签。MCP 服务器(v6.3.1 及更高版本)是 sharelatex 镜像的一部分,会与 Git 集成一同启用,因此无需额外的容器。3
更新 sharelatex 容器配置
你还需要在
sharelatex 容器中链接 git-bridge 容器,并定义以下环境变量,请特别注意 V1_HISTORY_URL:docker-compose.yml (sharelatex service)
4
身份验证
在对 git 客户端进行身份验证时,用户需要使用个人访问令牌(Personal Access Token)。用户可以通过应用界面管理个人访问令牌(参见文档):

Git 集成个人访问令牌
5
监控与资源注意事项
我们建议你在启用
git-bridge 后监控宿主机资源。负载的增加取决于:- 使用该功能的用户数量
- 实例中托管的项目类型(较大的项目通常更消耗资源)
将项目交换到 S3
Git 集成会在磁盘上为每个被用户克隆的项目存储一个完整的 git 仓库。如果磁盘空间有限,你可以启用一个交换任务,将较少使用的仓库移动到 AWS S3。如果再次需要已交换的仓库,它会被移回磁盘。以下环境变量用于控制交换任务:问答
如果我与他人共享项目,Git Bridge 的权限模型是如何工作的?
如果我与他人共享项目,Git Bridge 的权限模型是如何工作的?
具有只读权限的用户只能克隆该项目;具有读写权限的用户可以克隆和推送项目。注意:用户需要登录后才能加入该项目。
git push 失败并提示 HTTP 413 或 curl 55 Broken pipe
git push 失败并提示 HTTP 413 或 curl 55 Broken pipe
推送的内容超过了上传大小限制。该限制由
MAX_UPLOAD_SIZE 设置(单位为兆字节,默认为 50),同样适用于推送。请在 config/variables.env 中调高该值,例如 MAX_UPLOAD_SIZE=200,然后运行 bin/up -d。如果你使用 TLS 代理或自己的反向代理,还需调高其 client_max_body_size(在 Toolkit 的 config/nginx/nginx.conf 中为 50M)。git-bridge 还会拒绝大于 50 MB 的文件以及包含超过 2,000 个文件的项目。这些限制由 config/variables.env 中的 GIT_BRIDGE_REPOSTORE_MAX_FILE_SIZE(单位为字节)和 GIT_BRIDGE_REPOSTORE_MAX_FILE_NUM 设置。git-bridge 日志显示 Failed to fetch log level
git-bridge 日志显示 Failed to fetch log level
该警告无害,克隆、拉取和推送都能正常工作。在 6.2.x 中,git-bridge 每分钟会向 Google Cloud 元数据服务器(
metadata.google.internal)请求一次日志级别,这只在 Google Cloud 上有效。在其他环境中,该请求会失败,git-bridge 会记录错误(例如 null 或某个 HTTP 状态码),并继续使用 GIT_BRIDGE_LOG_LEVEL 中的级别。从 6.3.0 开始,该检查已关闭;升级时也会同时更新 git-bridge 镜像,其版本与主镜像保持一致。Git 和完整项目历史是否需要 track-changes 服务或 OVERLEAF_IS_SERVER_PRO=true?
Git 和完整项目历史是否需要 track-changes 服务或 OVERLEAF_IS_SERVER_PRO=true?
回答:不需要。Ayakaleaf Pro 没有 track-changes 服务。项目历史由
project-history 和 history-v1 服务保存,它们始终在 sharelatex 容器内运行。git-bridge 通过 V1_HISTORY_URL(http://sharelatex:3100/api)从 history-v1 读取历史,该变量由 Toolkit 设置。请不要设置 OVERLEAF_IS_SERVER_PRO:没有任何功能依赖它,它只会将启动时运行的数据库迁移切换为 Server Pro 的迁移集。
