6

请注意,这是我一直在关注的原始文章:http:
//www.markdotto.com/2011/11/02/how-to-deploy-sites-via-github/

给你一些背景知识:我们在组织帐户下设置了一个私人回购。我们有 3 名开发人员(包括我自己),他们在 GitHub 上拥有自己的帐户,并拥有私有仓库的管理员权限。

在处理项目时,我们克隆了 repo,然后创建了一个“dev”分支。我们每个人都在自己的开发分支上工作,并将更改推送到 GitHub 上的“开发”分支。

我们希望将这个 dev 分支放到我们的远程服务器上,这样我们就可以在合并到我们的主分支之前测试组合代码的工作原理(应该是干净的/始终可部署的)。

从这里我们按照上面的文章步骤通过 SSH 连接到我们的服务器,转到托管我们网站的相关目录并运行以下命令...

git clone git@github.com:ORGANISATION/REPO.git dev

我们遇到的第一个问题是我们的服务器返回了消息......

Cloning into dev...
ssh: connect to host github.com port 22: Connection refused
fatal: The remote end hung up unexpectedly

...我希望它在哪里向我们询问密码?

因此,我们尝试了 HTTP url ......

git clone https://USER@github.com/ORGANISATION/REPO.git dev

...您会注意到克隆时 HTTP url 现在使用我自己的 USERNAME。我输入密码并显示Cloning into dev...,但随后显示以下错误...

error: SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed while accessing https://Integralist@github.com/StormCreative/MoneyRepublic.com.git/info/refs
fatal: HTTP request failed

...我不明白这个错误。

那么我们如何将这个私有仓库克隆到我们的服务器上呢?

任何帮助表示赞赏!

亲切的问候,马克

4

2 回答 2

11

发生第一个问题是因为您没有将本地 rsa 密钥链接到您在 GitHub 上的帐户(是的,您将 rsa 密钥链接到您的帐户,并且组织也链接到您的帐户)。

在您尝试克隆存储库的本地计算机(或远程服务器)中,您需要生成一个 rsa 密钥:

ssh-keygen -t rsa

生成密钥时,您选择了密码和存储 id_rsa.pub 文件的位置,该文​​件实际上包含密钥。

在 GitHub 上,您需要将此密钥(id_rsa.pub 的确切内容)添加到帐户管理面板上的 ssh 密钥中。

于 2012-03-13T13:12:38.060 回答
0

我不确定是否可以帮助您解决对我来说似乎是 SSL 问题的错误。但我可以建议你另一种方法。我以这种方式将我的博客部署到我的服务器:

  • 我在名为 deploy 的服务器上创建了一个 git repo。
  • 我已将此部署存储库作为远程存储库添加到我的本地存储库。
  • 当我想部署时,我将更改推送到这个 repo。
  • 在我的部署 repo 中,我设置了一个 post-receive 钩子,以便每当推送更改时,它会自动在 Apache 的 hosts 目录内的服务器上克隆 repo,该目录为我的网站的最新版本提供服务。

如果您需要,我可以为您提供我的接收后挂钩的要点。如果您的网站在 Rails 中,您可以使用 Capistrano 进行部署。

编辑:这是我的接收后挂钩

GIT_REPO=$HOME/aliirz.git
PUBLIC_WWW=/var/www/myrepo

git clone $GIT_REPO $PUBLIC_WWW
exit

问候

编辑:上面drgomesp的答案完全是解决方案。我没有想到您需要将 SSH 密钥与 Github 连接起来。

于 2012-03-13T13:14:56.020 回答