4

我一直在研究如何使用 git 进行 WordPress 部署。几乎所有示例都将 WordPress 作为远程存储库,并定期合并到 master/feature 分支中。

我不想将 WordPress 核心提交到我的存储库中。我基本上想忽略除了我将要更改的文件(主要是我的自定义主题)之外的所有内容。有没有一种简单的方法可以做到这一点,但仍然保持本地、登台和生产服务器运行相同的 WordPress 版本?

4

1 回答 1

1

除非您希望在副本中从上游进行更改,否则不需要合并远程存储库。

假设您在本地有一个名为的文件夹中的 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 子模块的可能解决方案

假设您在 github 上设置了 Wordpress。首先克隆 repo:

git clone git://github.com/Soliah/Wordpress.git
cd Wordpress
git checkout origin/3.2-branch

现在说你有一个主题“真棒”:

cd Wordpress
git submodule add https://github.com/Soliah/awesomeness.git ./wp-content/themes/awesomeness
git submodule init
git submodule update

现在,只要您想更新主题,请先更新主题回购:

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如果它们已经存在。

于 2011-11-22T06:17:01.843 回答