我有一个基本但常见的WordPress工作流程问题。
当前工作流程
疑似Git工作流程
我想我已经知道它应该如何在概念上完成,但我不知道它应该如何实际完成。我应该在中间使用Github私人回购吗?我的Live网站有没有办法直接从我的localhost仓库“拉”?
道歉,如果这看起来已经基本或已经被打死,但我已经搜索过,并且没有找到基本的“这就是你的工作流程应该如何看”指南。
谢谢!
特里
答案 0 :(得分:9)
看起来你根本就没有使用版本控制。你要开始这是个好主意。我只是从SVN转换为Git,而且我正在做你在更宏大的层面上做的事情。让我们从你的目标开始:
人们会告诉你Git不是一个网络部署工具 - 他们可能是对的,但到目前为止它对我来说还可以,我做了类似的事情。幸运的是,我在Wordpress安装上练习 - 这是我采取的步骤。
git init
基础安装,无需修改现在,我最后回去做的是创建一个gitolite
服务器虚拟机并将其用作我的主机 - 这在您的示例中有效地替换了github。我想你知道远程存储库的价值 - 我肯定会追求这条路线。
我将在我的建议的第2步上回溯一秒钟。您应该在主服务器上保留Wordpress的vanilla版本,这样您就可以升级核心并查看它如何与您的自定义代码一起使用,而不是像您的某个分支机构之类的东西那样升级核心。这对我来说非常方便,而且我肯定会在像Magento这样的大型项目上使用它。
好的,回到部署。您可以在您的网络服务器上放置一个git客户端,并在工作流程中从其分支中获取pull
- 但您必须考虑一些特殊的规划。您的prod文件很可能与某些地方的开发文件不同,特别是配置(数据库等) - 您要确保这些文件位于.gitignore
,这样您才不会拉起来dev
配置到您的prod
环境中。
我大部分时间总结了当我开始研究时人们告诉我的内容,所以我希望它有所帮助。再说一遍,我只是略微超过你的位置,所以如果有人有任何更正/优化,请随时发表评论。
答案 1 :(得分:0)
我开始为Wordpress设置这样的工作流程。我已经将它用于其他一些网络项目。
我正在使用gitolite(https://github.com/sitaramc/gitolite/wiki/)工具在中央位置管理裸存储库(没有本地结帐的存储库),然后在gitolite中触发更新挂钩从开发地点推出一个分支。
这个钩子然后ssh到实时服务器(或客户端的帐户或其他任何),存储在部署服务器上的共享私钥,并从public_html或您为Wordpress安装服务的任何位置执行git pull。
这是使用gitolite配置文件中的只读条目完成的,该文件是本地配置存储库中的conf / gitolite.conf。 (Gitolite使用git存储库来管理它的配置文件)
repo wp-versions
RW+ = tmzt
R = server1
R = server2
第一个是我的主要公钥,它将keydir / tmzt.pub存储在同一个存储库中(格式与.ssh / authorized_keys相同)。另外两个是实时Web服务器,它们具有对存储库的只读访问权限。将三个键添加到keydir并确保提交和推送。这些更改将在gitolite安装中自动进行。 (服务器密钥由多个用户共享并复制到每个用户的.ssh / id_rsa文件中,但如果您愿意,可以使用www-data。)
RW +表示我的主要用户具有读取,写入和更新非快进分支(对于恢复服务器上的提交非常有用)。
答案 2 :(得分:0)
我知道这是如此烦人和累人,这就是为什么许多开发人员选择专业的方式来做到这一点的原因。这不仅可以帮助他们节省时间,而且可以提高工作效率。基本上,WordPress GitHub开发工作流中有两种主要方案。第一个是在实时环境中使用WordPress和Github,另一个是在本地环境中使用时。本地工作流程很简单的地方。您需要做的就是将更改从GitHub推送到本地,或者反之亦然。
(在具有多个团队的实时环境中工作非常复杂)
在实时环境工作流程中,首先,您必须将实时WordPress站点文件推送到GitHub存储库,然后将它们拉到本地文件夹。
然后,在本地计算机上构建开发环境(编辑代码),然后从本地推送到GitHub。
现在,要首先将更改移至实时环境,您需要将GitHub与实时环境连接。
您可以阅读这份详细的WordPress和GitHub指南,希望对您有所帮助:https://www.cloudways.com/blog/wordpress-github/