0

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

4

2 回答 2

2

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

于 2012-06-05T13:15:40.837 回答
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. 获取当前的 ref HEAD(假设您只签出标签):
    current=$(git rev-parse HEAD)
  3. 获取最新标签的 ref:
    latest=$(git rev-list --tags | head -1)
  4. 最后,如果$current不等于$latest,请查看最新标签:
    git checkout $(git tag --points-at $latest)
于 2015-12-05T15:28:34.737 回答