我已经将Git用于简单的本地到GitHub到生产工作流程,但是我第一次需要设置一个还包括开发服务器。
我目前在生产服务器上安装了Magento。我已经为此添加了一个.gitignore文件,并成功将跟踪的文件保存到GitHub存储库。我还将跟踪的文件保存到本地存储库。我目前能够在本地进行更改,将它们推送到GitHub,然后将它们拉到生产服务器。到目前为止,非常好。
现在,我想设置另一台服务器(称为“开发”),其中包含自己的Magento安装,其中包含当前部署在生产服务器上的所有相同插件和代码。
但每次我安装Magento,设置一个存储库,添加GitHub遥控器,并拉取文件,它会覆盖我的核心Magento文件,并只复制Git跟踪的文件。
答案 0 :(得分:1)
您必须将生产环境直接复制到开发环境中。拉动新的开发环境并不会检索所有文件(因为git没有跟踪所有文件)。
app/etc/local.xml
。core_config
表,将base_url
值更改为开发网址。var/cache
和var/sessions
文件夹中的所有内容。验证Magento在新开发服务器上设置并正确运行后,您可以开始设置Git以推送它。我个人使用位于实际服务器上的裸存储库,我从本地环境推送。
在开发服务器上,执行以下操作(使用ssh连接)
~/git/development
。请记住,~
是指进行连接的用户的根目录。cd /home/myuser/git/development
git init --bare
vi hooks/post-receive
粘贴以下内容(将路径更改为绝对Magento目录):
#!/bin/sh
GIT_WORK_TREE=/path/to/magento git checkout -f
保存文件。然后在文件上运行以下命令以设置正确的权限:
chmod +x hooks/post-receive
以上操作允许您推送到裸存储库,并自动将更改应用于Magento文件。
现在,您希望将本地git配置为能够推送到远程开发服务器。
添加远程仓库:
git remote add development ssh://user@serverdomain.com/~/git/development
现在测试将主分支推送到开发服务器:
git push development master
如果您没有将.ssh密钥添加到开发服务器,则可能需要输入密码。
如果操作正确,您现在可以简单地将更改推送到您的开发环境,并且在此之后网站将立即更新。