我一直在研究如何使用git进行WordPress部署。几乎所有的例子都有WordPress作为远程存储库,定期合并到master/feature分支中。
我不想提交WordPress核心到我的存储库。我基本上想忽略所有的东西,除了我要改变的文件(主要是我的自定义主题)。是否有一种简单的方法可以做到这一点,但仍然保持本地,登台和生产服务器运行相同的WordPress版本?
合并远程存储库是没有必要的,除非您想要在您的副本中从上游进行更改。
假设你的Wordpress在本地名为wp
的文件夹中,并且它还不是git repo:
cd wp
git init .
touch .gitignore # Add required stuff to .gitignore.
git add .
git commit -m "Initial commit."
现在,当您想要远程反映这些更改时,只需将其推送到您的生产或登台服务器的远程。
git push staging master
可能的解决方案通过git Submodules
假设你在github上安装了Wordpress。首先克隆repo:
git clone git://github.com/Soliah/Wordpress.git
cd Wordpress
git checkout origin/3.2-branch
现在假设你有一个主题"awesome ":
cd Wordpress
git submodule add https://github.com/Soliah/awesomeness.git ./wp-content/themes/awesomeness
git submodule init
git submodule update
现在任何时候你想更新你的主题首先更新主题的repo:
cd awesomeness
# update some stuff
git add .
git commit -m "Update theme."
git push origin master
回到wordpress,只需更新子模块并推送到github。
cd Wordpress
git submodule update
git commit -m "Update theme submodules."
git push origin master
在您的其他服务器上,您可以选择git clone git://github.com/Soliah/Wordpress.git && git submodule update --init
或git pull
,如果它们已经存在。