2012-06-05 93 views
0

我可以直接从GitHub部署到我的(debian linux)服务器吗?在每次提交之后,有没有办法从GitHub向我的服务器自动传输代码?还操纵配置文件?从GitHub部署?

回答

2

克隆服务器上的存储库,每隔1或2分钟(或任何间隔,取决于提交频率)在服务器上运行cronjob并更新回购。这应该够了。但这在生产服务器上不可取。尽管如此,您可以在测试或登台服务器上执行此操作。

1

Bibhas上面的答案是正确的,但如果您不是唯一在存储库上协作的人,则可能需要考虑使用git标记来指示可发布的代码并仅在新标签出现。

要做到这一点,标记你的最新提交您的开发机器上,并将它推:

git tag -a v1.0 -m"Initial tag" 
git push origin --tags 

然后,您的服务器上:

git remote update && git checkout v1.0 

然后,您的cron脚本应该做到以下几点:

  1. 获取从GitHub最新:
    cd $REPO && git remote update
  2. 获取当前HEAD的裁判(假设你只是检查出标签):
    current=$(git rev-parse HEAD)
  3. 获取最新标签的裁判:
    latest=$(git rev-list --tags | head -1)
  4. 最后,如果$current不等于$latest,检查拿出最新的标签:
    git checkout $(git tag --points-at $latest)