WordPressは、ファイル郡と、DBでできている。
このうち、ファイルをGitでバージョン管理したい。
だが、WordPressは以下の問題があって、ファイル全部をGitで管理すべきではない。
- アップデートなどでしょっちゅう更新されるファイルがある
- 検証環境と本番環境を分けているときに、内容を変えなければならないものがある
Gitで管理すべきWordPressのファイル
- 使用中のテーマフォルダ一式
-
wp-content/themes/使用中のテーマフォルダ
-
基本的には使用中のテーマフォルダだけでよさげ。
管理するべきものはテーマファイルだけだと思うので、
参考:Qiita
/.htaccessは、Git管理対象とするか
後述するサイトにあるけど、/.htaccessは、WordPressにより書き換えられる部分があるため、Git管理しないという考え方もある。
が、
個人的には、以下の場合、Gitの管理対象としたい。
- WordPressやレンサバが自動生成する部分以外の部分を記述している場合
- しかし、その記述部分が本番環境と検証環境とで異なった内容となる場合、どうするか検討する
- 本番環境の/.htaccessだけGit管理するか
- 本番環境と検証環境の記述両方書いておいて、片方をコメントアウトしておくか
- 本番環境と検証環境の記述両方書いておいて、IF文で自動的に設定が切り替わるようにしておくか(Apache2.4)(未検証)
- 紛らわしいので/.htaccessはGit管理しないか
- しかし、その記述部分が本番環境と検証環境とで異なった内容となる場合、どうするか検討する
参考1(Qiita)
上記のQiita
.gitignore
に対象のテーマファイルのみを管理するように記述する。* !.gitignore !/wp-content/themes/{mytheme} # {mytheme}にはテーマ名を入れる
基本的にはこれでよさそうやな。
参考2
WordPressのフォルダを一個したに掘った場合(この場合は/cms/としている)の、.gitignoreの書き方について書かれている。
また、
LaravelなどのPHPフレームワークとWordPressの共存について書いているので、必要が出てきたら再度確認したいと思う。
wp-content/themes/[任意のテーマフォルダ]
プラグインに関してはサーバー上で更新するため、Gitで管理するのは避けた方が良いと思います。
もし独自プラグインを作りたい場合も、テーマフォルダ内で展開して良いと思います。
また、画像などが入る wp-content/uploads フォルダや、言語ファイルの wp-content/languages フォルダ、更新時の一時ファイル置き場に使われる wp-content/upgrade フォルダなども頻繁に更新されるためGit管理下には置きません。WordPressのGit管理を考えるGitでのソースコード管理が浸透しつつある昨今、WordPressはGit管理できるのか考えてみます。
/public/ をDocumentRootとした場合の、.gitignoreの書き方。
除外(.gitignore)設定
フォルダ構成が上記の場合、.gitignore ファイルは以下のようになります。
# WordPressによって書き換わる場合があるため除外
/public/.htaccess
/public/sitemap*
# テーマフォルダと wp-config.php のみにする
/public/cms/*
!/public/cms/wp-config.php
!/public/cms/wp-content
/public/cms/wp-content/*
!/public/cms/wp-content/themes
/public/cms/wp-content/themes/*
!/public/cms/wp-content/themes/maintheme
.htaccessはGit管理したい場合、以下。
/public/sitemap*
/public/cms/*
!/public/cms/wp-config.php
!/public/cms/wp-content
/public/cms/wp-content/*
!/public/cms/wp-content/themes
/public/cms/wp-content/themes/*
!/public/cms/wp-content/themes/maintheme
mainthemeの部分は、要変更。
wp-config.phpも、検証機が別のDB使ってるなら本番と齟齬が出るので、それが嫌な場合は除外で。
やっぱり、Gitで管理するWordPressのフォルダは、基本は使用中のテーマフォルダのみってことになるっすな。
コメント