为ec2设置git部署过程

时间:2017-07-02 05:11:37

标签: git ssh amazon-ec2 deployment

我关注this tutorial:关于为ec2实例设置git部署过程。

我仔细检查了配置文件中带有ec2主机的~/.ssh/计算机的所有步骤。创建裸git仓库。添加post-receive钩子脚本等。

在本地,我做了一些修改,提交。
然后我添加了ec2 repo git remote add deploy ec2:/home/ec2-user/ab-site(ab-site是我刚刚初始化的裸git repo - 而ec2是我在{{1}本地设置的ssh别名}文件)。

然而,当我推进~/.ssh/config

我收到了一堆错误。

git push deploy +master:refs/heads/master

所以我很好奇我接下来要解决的问题。

2 个答案:

答案 0 :(得分:0)

  

core.bare和core.worktree没有意义

这是一个警告since Git 2.5+, is fixable。如果该警告位于远程端,则表示core.bare设置为true,同时也设置了worktree。

通常的解决方法是git config --unset core.worktree,但在您的情况下,from that comment

  

使用bare=false它可以正常工作。

然后您可以仔细检查权限问题。

答案 1 :(得分:0)

您的问题包含警告和错误

  1. 警告

    警告:core.bare和core.worktree远没有意义: 警告:core.bare和core.worktree远没有意义:错误:

  2. <强>解决方案

    Bare存储库是只读存储库。裸仓库最常见的用例是创建一个远程中央Git仓库,

    所以git打印&#34;致命:core.bare和core.worktree没有意义&#34;错误信息。因此,您需要在repo的配置文件中设置bare = false

    cd barerepo
    git config --bool core.bare false
    git config --path core.worktree /var/www/mywork
    
    1. 的错误

      将对象添加到存储库数据库的权限不足

      ./对象远程:致命:无法写入对象错误:解包失败:unpack-objects异常退出

    2. <强>解决方案

      cd repository/.git
      
      sudo chmod -R g+ws *
      sudo chgrp -R mygroup *
      
      git config core.sharedRepository true