部署 - 在实时生产中进行 GIT 推送是否安全



我目前期待使用裸 git 存储库以便在生产服务器上部署,我有一个使用 git checkout 更新生产文件夹的"接收后"钩子。该应用程序是一个PHP网站。

事实上,我想知道当有人使用 web 应用程序时,使用 git 推送生产服务器是否绝对安全,git 是通过锁定每个更新文件以类似事务的方式更新文件还是他正在逐个文件工作文件?用户是否有可能加载页面并拥有旧提交的 CSS 但新提交的 PHP?(如果他很倒霉(

TL;DR : 当人们使用网站时,推送是否有任何风险?

对不起我的英语! 感谢您的帮助!

Git 只是在文件中复制。

您可能需要手动重新启动 Web 服务器才能接机 更改的 PHP 程序。如果您混合使用 技术 有些软件会立即选择更改的文件,而其他软件会选择更改的文件 可能会等待重新启动。

在您的情况下,您需要检查 php.ini 文件 opcache.revalidate_freq= 和 oapache.启用控制设置 如果 Apache 查找更改的源文件以及查找频率。

对于生产服务器,关闭它们可能更安全 重新启动服务器以选取更改的文件。

这完全取决于使用文件的内容,文件是否打开,以及文件是否打开,是否会在某个时候重新读取它们。

在某些系统上,您可以就地更新文件,但在重新启动应用程序和/或服务之前,这些文件将被忽略。

在其他系统上,会立即选取更改。

在其他系统上,文件是打开的,您无法覆盖它们。

简而言之,这与 git 关系不大,与使用文件的内容有很大关系。

此外,您需要了解版本之间发生的情况。如果字段在版本之间发生更改,则需要确保可以处理获取表单帖子的页面将收到与预期不同的数据的情况。

git 是否通过锁定每个更新文件以类似事务的方式更新文件

AFAIK,git 以逐个文件为基础工作,如果一个文件或另一个文件出现故障,则不会回滚。

最新更新