我倾向于使用 Git 将生产代码部署到 Web 服务器。这通常意味着某个主 Git 存储库托管在某个ssh
可.git/
通过.gitignore
. 当我需要更新它时,我只需从主存储库拉到服务器的存储库。这有几个优点:
- 如果出现任何问题,回滚到较早的版本非常容易——就像检查它一样简单。
- 如果任何源代码文件被修改,检查它就像 一样容易
git status
,如果服务器的存储库已被修改,下次我尝试拉取时会很明显。 - 这意味着还有一份源代码副本,以防万一发生坏事。
- 更新和回滚非常简单且非常快速。
不过,这可能存在一些问题:
如果出于某种原因,Web 服务器决定它应该为
.git/
目录提供服务,那么所有的源代码都将变得可供所有人阅读。从历史上看,有一些(大)公司犯了这个错误。我正在使用.htaccess
文件来限制访问,所以我认为目前没有任何危险。也许确保没有人可以读取.git/
文件夹的集成测试是有序的?每个意外获得对该文件夹的读取权限的人也可以访问曾经存在的源代码的每个过去修订版。但这不应该比访问当前版本更糟糕。毕竟,这些修订在定义上已经过时了。
综上所述,我相信使用 Git 将代码部署到生产环境是相当安全的,并且比 , 或只是复制它要容易rsync
得多ftp
。你怎么认为?