从GitHub部署?

时间:2012-06-05 12:09:10

标签: github

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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)