【发布时间】:2013-09-21 02:18:30
【问题描述】:
我在 BitBucket git repo 中有一个 PHP 项目。
我在一个名为“develop”的分支中进行小修复,或者我在临时功能分支中工作。当我准备好部署时,我将这些分支合并到“master”中。
我想让部署到我的实时站点变得如此简单(合并到 master 并推送到 BitBucket)。
但我真的不希望我的服务器能够访问我的存储库,因为这会增加安全问题。如果您关心安全性,则希望您的存储库位于尽可能少的地方.如果您的服务器受到威胁,那情况就已经够糟糕了,但如果攻击者能够访问我的完整存储库,那就更糟了。 This person 同意。
所以我假设我想使用git archive master 之类的东西,就像https://stackoverflow.com/a/163769/470749 解释的那样。
如何设置一个钩子来检测“master”的推送,然后运行 git archive master 以将最新代码(但不是作为 repo)导出到压缩的 zip 文件,然后发送(通过 SCP 和/ 或 Rsync?)到远程服务器,将其解压缩到新目录,然后(可能通过更改符号链接)将服务器指向该新目录?
额外问题:如何启用简单的紧急回滚? (我想在某些情况下我想快速恢复到之前的提交。)
【问题讨论】:
标签: git deployment rsync scp