另一种选择是在服务器上配置一个裸存储库,并将其添加为本地存储库上的第二个远程存储库。 现在,每次您想要将代码部署到服务器时,您都可以推送到此远程服务器。然后,您在服务器上创建一个 git hook 来触发 post-push,并自动执行例如重新启动服务的脚本。 阅读更多这里
对我来说,我很难在这两种选择之间做出选择,因为我有一些未解答的问题:
对于 github 操作,从 github 运行程序运行的 SSH 密钥有多安全?考虑到我的代码库很大,在我只更改了 1 或 2 个文件的修补程序提交之后 scp 所有文件是不是有点过分了?
对于 git bare 存储库:git 文件夹的大小会成为问题吗?以及如何保护我的服务器,使其不会为 .git 文件夹提供服务?
您使用 scp 的方法可能是安全的,但需要记住一些注意事项:
使用自托管运行器的方法比 GitHub 托管运行器具有安全优势,因为您可以控制自托管运行器。您可以使用自托管运行器轻松在 SSH 端口上设置入口过滤。此外,您可以使用 SSH 的专用服务器端点,并有可能消除服务器的互联网暴露。