我正在尝试设置git部署环境,在该环境中,当我准备好时,会将更改推送到托管在暂存服务器上的git仓库,然后使用post-receive hook从各个分支部署代码到相应的Web根目录。
然而,我遇到的一个问题是每次运行git submodule update
时,我都会收到密码提示,导致部署脚本卡住。
到目前为止,我尝试过以下几种方法:
- 子模块托管在公共仓库上,因此我只是要从中读取,不明白为什么需要密码。
- 话虽如此,为了解决这个问题,我为暂存服务器创建了新的ssh密钥,并且在除这种情况外的情况下都能够正常克隆/提取,没有任何问题。
- 我还检查了.gitmodules和.git/config文件,以确保从正确的位置拉取子模块。
- 在运行git submodule update时,当出现密码提示时,只需将密码留空并按Enter键似乎可以正常更新,但是出现提示是导致我的挂钩脚本出现问题的原因。
需要注意的一点是,在我的暂存服务器上设置仓库时,由于防火墙限制,我无法从我的工作实例中克隆仓库,因此我在本地克隆了一个副本,然后将该新克隆的版本移动到服务器上,并且一直都能够成功推送。
希望获得任何可以提供的建议或技巧。