我无法让 git 忽略我wp-config.php
的部署文件。我使用 git 设置了自动部署(这是一个非常棒的工具,如果您不了解它,可以在此处阅读有关它的信息- 您不需要像文章中指出的那样使用 kinsta 托管,尽管您的文件结构可能会有所不同)。
但是每次我推送更改时,它都会覆盖我的wp-config.php
文件,导致网站上出现数据库错误。发生这种情况是因为用于部署的 git 挂钩引入了更改,然后签出任何本地更改。由于这是一个临时站点,它使用生产中的 repo,但在 中具有不同的值wp-config.php
,以便连接到它自己的数据库。
到目前为止我已经尝试过:
- 在登台服务器上提交对 wp-config 的更改,因此它不会被 git 钩子签出
wp-config.php
在登台服务器上添加.gitignore
(我本来应该做的)- 增加
wp-config.php
(.gitignore
我本来应该做的)开发并推动分期 - 向钩子添加一行以在执行部署后
post-receive
检查更改wp-config.php
这是我的post-receive
挂钩文件(客户端名称替换为 XXXXX):
#!/bin/bash
TARGET="/www/XXXXX_975/public"
GIT_DIR="/www/XXXXX_975/private/XXXXX.git"
BRANCH="master"
while read oldrev newrev ref
do
# only checking out the master (or whatever branch you would like to deploy)
if [[ $ref = refs/heads/$BRANCH ]];
then
echo "Ref $ref received. Deploying ${BRANCH} branch to staging..."
git --work-tree=$TARGET --git-dir=$GIT_DIR checkout -f
git checkout /www/XXXXX_975/public/wp-config.php
else
echo "Ref $ref received. Doing nothing: only the ${BRANCH} branch may be deployed on this server."
fi
done
该站点位于public
目录中。存储库位于不同的目录中private
,以免被部署覆盖。
这是一个 Wordpress 网站,托管在 Kinsta 上。如果有任何我忘记包含的信息,请告诉我。
谢谢!