Git 子模块密码提示

问题描述 投票:0回答:4

我正在尝试设置 git 部署设置,其中在准备好时将更改推送到临时服务器上的 git 存储库,然后使用 post-recieve 挂钩将代码从各个分支部署到适当的 Web 根目录。

但是我每次跑步时都遇到一个问题:

git submodule update

我收到密码提示,导致部署脚本冻结。

到目前为止我尝试过的事情是:

  1. 该子模块托管在公共存储库上,因为我只是尝试从中读取内容,所以我不明白为什么它需要密码。
  2. 也就是说,为了尝试解决这个问题,我为临时服务器创建了新的 ssh 密钥,并且在这种情况之外运行时能够顺利克隆/获取,没有任何问题。
  3. 我还检查了 .gitmodules 和 .git/config 文件,以确保从正确的位置提取子模块。
  4. 当运行 git 子模块更新时,当出现密码提示时,只需将密码留空并按 Enter 键似乎可以很好地更新内容,但事实上,我收到提示却弄乱了我的钩子脚本。

需要注意的一件事是,在我的临时服务器上设置存储库时,由于防火墙限制,我无法从工作实例中克隆存储库,因此我在本地克隆了一个副本,然后将新克隆的版本移动到服务器,我已经能够很好地推送它。

寻找我能得到的任何建议或技巧。

git deployment ubuntu
4个回答
23
投票

有同样的问题。就我而言,这是由于将子模块“url”设置为

https
URL 而不是
git@
URL 引起的。


10
投票

https://..
参数中的
git@...
更改为
.gitsubmodule
,然后运行命令:

url

    


1
投票
git submodule sync --recursive

替换为

https://
,您可以选择简单地在您的
git@
文件。格式如下:
~/.netrc



0
投票

如果您提供网址,请尝试使用以下内容:“

[email protected]

:myOrg/myRepo.git” 这允许系统 git 使用适当的用户来访问存储库,如果您使用的是

https://username@

...那么另一个用户将必须提供访问存储库所需的凭据,或者您自己,如果您还没有为用户设置 git。

© www.soinside.com 2019 - 2024. All rights reserved.