如题所述,博主最近想在Jenkins中自动化部署gitlab项目,但是在Jenkins中的shell脚本执行git submodule时报:

fatal: could not read Username for ‘xxxx’: No such device or address

在这里插入图片描述

本质原因是 服务器没有权限去拉取git子库,有如下几种解决方案:

  1. 将服务器的公钥配置到gitlab中,但这样服务器上的所有人都能clone你的代码
  2. 将username和password配置到服务器中,存在同样的问题
  3. 将gitlab的子仓库设置成public,这相当于裤衩都被脱掉了。。。
  4. 使用高级子模块克隆功能,可以完美解决这个问题

我们使用第4种方案解决这个问题,

设置步骤如下:

  1. 在Configure中添加Additional Behaviours
    在这里插入图片描述
  2. 点击Add后选择Advanced sub-modules behaviours高级子模块行为
    在这里插入图片描述
  3. 勾选Use credentials from default remote of parent repository使用来自父存储库的默认远程的凭据
    在这里插入图片描述
  4. Save并Apply,即可解决问题。

参考文献:

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐