You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

搭建Git+Jenkins服务器:裸仓库与非裸仓库该如何选择配置?

适配自动化部署的Git仓库配置方案

方案选择结论

优先选择方案2:服务器端部署裸仓库作为共享中央库,Jenkins侧单独克隆非裸仓库执行构建,这是业内通用的标准化最佳实践,完全不推荐使用非裸仓库作为共享中央库。


方案1(共享库用非裸仓库)的核心问题

  • 非裸仓库自带工作区,多人同时推送时极易出现工作区与分支HEAD版本不一致的冲突,甚至会直接覆盖他人提交,不符合共享中央仓库的协作要求
  • 若有人直接在服务器上修改非裸仓库的工作区文件,会产生未提交的变更,后续其他人推送时会直接报错,长期运维成本极高

方案2的具体配置方式

服务器端配置(共享中央库)

服务器端仅需创建标准裸仓库作为共享存储,不需要留存可直接读取的源文件:

  1. 执行命令创建裸仓库:git init --bare <项目名>.git
  2. 正常配置仓库的访问权限、分支保护规则即可,不需要额外修改仓库配置

Jenkins侧配置

不需要对Git服务器做特殊改造,Jenkins原生支持从裸仓库拉取代码构建:

  • 在Jenkins任务的「源码管理」模块,直接填写上述裸仓库的拉取地址即可
  • Jenkins执行构建任务时,会自动将裸仓库克隆为非裸仓库到构建节点的本地工作区,自动检出对应分支的完整源文件,正常执行构建、测试、部署流程即可

特殊场景补充

如果确实需要在Git服务器上常驻一份最新的源文件用于其他操作,可以给裸仓库配置post-receive钩子,每次有新推送提交时自动更新指定目录的源文件,钩子示例:

#!/bin/bash
git --work-tree=<服务器上存放源文件的绝对路径> --git-dir=<裸仓库的绝对路径.git> checkout -f

内容的提问来源于stack exchange,提问作者Jason Yang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 20:18:00