使用capistrano在rails部署期间无法识别git存储库

时间:2012-04-03 20:02:44

标签: ruby-on-rails git deployment capistrano

我正在试图弄清楚为什么当我尝试部署我的rails应用程序时,我从远程git存储库收到错误。它告诉我它不是一个git存储库,但我可以毫无问题地推送它。但是我最近遇到了bash没有找到git的问题,但它只是我安装macports时出现的路径变量问题(我认为)。它现在已修复。提前感谢您提供的任何帮助! 错误输出如下:

my-MacBook-Pro:project myUser$ cap deploy:update
  * executing `deploy:update'
 ** transaction: start
  * executing `deploy:update_code'
    updating the cached checkout on all servers
    executing locally: "git ls-remote git@server.example.ca/usr/local/git_root/project.git master"
fatal: 'git@server.example.ca/usr/local/git_root/project.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
*** [deploy:update_code] rolling back
  * executing "rm -rf /usr/local/www/sites/project.example.ca/releases/20120403193900; true"
    servers: ["project.example.ca"]
    [project.example.ca] executing command
    [project.example.ca] rvm_path=/usr/local/rvm /usr/local/rvm/bin/rvm-shell 'ruby-1.9.2-p290@project' -c 'rm -rf /usr/local/www/sites/project.example.ca/releases/20120403193900; true'
    command finished in 639ms
Command git ls-remote git@server.example.ca/usr/local/git_root/project.git master returned status code pid 1815 exit 128

4 个答案:

答案 0 :(得分:5)

看起来你有一个格式错误的Git网址:

git ls-remote git@server.example.ca/usr/local/git_root/project.git master

应该是:

git ls-remote git@server.example.ca:/usr/local/git_root/project.git master

他们遵循SCP协议(有关更多信息,请参阅git-clone联机帮助页。)

答案 1 :(得分:3)

您的密钥必须可供ssh-agent

使用

我有同样的问题。解决了“ssh-add yourkey”,其中你的密钥是路径做id_rsa,你可以检查:ssh-add -L,如果ok将返回你的公钥

答案 2 :(得分:1)

原来问题是存储库地址WAS格式错误,如上面的用户所建议的那样。但是,通过向存储库地址添加'ssh:'前缀解决了该问题。谢谢你的建议!

答案 3 :(得分:-2)

您可以尝试删除本地存储库并重新克隆它吗?