我想开始使用版本控制系统 (git) 来管理多个网站开发人员在网站上的工作。这样,我们所有人都可以看到谁在什么时间做了哪些更改。
我搜索了一下,发现这将代码推送到实时服务器的指南。我对 git 的了解仅限于简单的提交和推送/拉取,因此我对此操作有一些疑问。
将代码推送到实时服务器似乎有点冒险。将生产代码保留在主分支中并将新功能/错误修复放入单独的分支中可以吗?然后,其他开发人员可以拉入这些分支并进行检查,然后将其合并到主分支中?
如何管理网站 docroot 上的权限?如果两个不同的用户将他们的代码推送到服务器,当这些文件被发送到 docroot 时,如何让它们归 www-data:www-data 所有?
答案1
首先恭喜你!拥有一个版本控制系统来管理你的代码总是一个好主意。
您的预感是正确的,最好有两个单独的 repo 副本,一个用于开发,一个用于实时部署,您应该指定一个发布经理来推送实时代码或采取某种程序。
让每个人都从 devel repo 中推送/拉取,并保护你的 prod repo,然后每当代码可以发布时,只需将所有必要的更改从 devel repo 推送到 live repo,然后从那里推送到所有实时服务器。
关于权限,我的建议是始终以您正在写入的用户身份推送,因此如果您通过从部署用户(请记住,应与 devel 分开以避免诱惑)到您的 www-data 用户的 ssh 交叉密钥进行部署,如果不是,只需在部署脚本中添加另一个步骤到chown
文件