我可以直接从 GitHub 部署到我的(debian linux)服务器吗?有没有办法在每次提交后自动将代码从 GitHub 传输到我的服务器?还要操作配置文件?
powtac
问问题
304 次
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 脚本应该执行以下操作:
- 从 Github 获取最新信息:
cd $REPO && git remote update
- 获取当前的 ref
HEAD
(假设您只签出标签):current=$(git rev-parse HEAD)
- 获取最新标签的 ref:
latest=$(git rev-list --tags | head -1)
- 最后,如果
$current
不等于$latest
,请查看最新标签:git checkout $(git tag --points-at $latest)
于 2015-12-05T15:28:34.737 回答