2026年7月20日

2026年7月20日

WordPressテーマをGitでバージョン管理する方法(.gitignore・タグ・デプロイ)

WordPress のテーマを Git で管理するなら、リポジトリに入れるのは基本的に「自分で書いたテーマのフォルダ」だけにし、node_modules やビルド成果物、秘密情報を含む wp-config.php は除外するのが基本です。そのうえで style.css のバージョン番号と Git のタグをそろえておくと、どの版が本番に出ているかを後から追えます。この記事では、リポジトリの範囲の決め方、.gitignore の例、バージョンの付け方、サーバーへの反映方法までを説明します。

どこをリポジトリにするか

最初に決めるのは「どのフォルダを Git の管理対象にするか」です。代表的な選択肢は2つあります。

  • テーマフォルダだけをリポジトリにする:wp-content/themes/my-theme/ で git init します。テーマ単体で開発・配布する場合や、本番サーバーのWordPress本体を触りたくない場合に向いています。
  • サイト全体をリポジトリにする:WordPress 本体やプラグインも含めて管理する構成です。本体やプラグインのバージョンもそろえたいチーム開発で使われますが、除外設定が複雑になります。

テーマのバージョン管理が目的なら、テーマフォルダだけを対象にするのが分かりやすく、事故も起きにくい構成です。WordPress 本体や公式ディレクトリのプラグインは、WordPress の更新機能や WP-CLI で管理できるため、テーマと同じリポジトリに入れる必要はあまりありません。

親テーマ(配布テーマ)をカスタマイズしている場合は、親テーマではなく子テーマをリポジトリにします。親テーマは配布元の更新で上書きされるため、自分の変更は子テーマに集めておくほうが管理しやすくなります。

リポジトリを作る

テーマフォルダに移動して初期化します。

cd wp-content/themes/my-theme
git init
git add .
git commit -m "Initial commit"

GitHub や GitLab などのリモートリポジトリを使う場合は、テーマのコードが外部に置かれることになります。有料テーマのコードを含む場合はライセンス上の扱いを確認し、リポジトリは非公開にしておきます。

.gitignore で除外するもの

コミットすべきでないものは、大きく分けて「自動生成されるもの」「環境ごとに違うもの」「秘密情報」です。テーマフォルダ直下に置く .gitignore の例を示します。

# 依存パッケージ(package.json / composer.json から復元できる)
node_modules/
vendor/

# ビルド成果物(サーバー側やCIでビルドする運用の場合)
/build/
/dist/

# ログ・OSやエディタの生成ファイル
*.log
.DS_Store
Thumbs.db
.idea/
.vscode/

# 環境ごとの設定・秘密情報
.env

判断が分かれるのは vendor/ とビルド成果物(build/ や dist/)です。

  • サーバーやCIで npm run build や composer install を実行できるなら、成果物はコミットせず、.gitignore に入れます。差分が読みやすくなり、マージ時の衝突も減ります。
  • 共用レンタルサーバーなどでビルドできず、git pull だけで動かしたいなら、成果物もコミットする運用にします。その場合は上の例から /build/ や vendor/ の行を外します。

どちらにするかはチームで1つに決め、README などに書いておきます。混在すると「ローカルでは動くのに本番ではCSSが古い」といった食い違いが起きます。

すでにコミット済みのファイルは、あとから .gitignore に書いても追跡が外れません。管理から外すには次のようにします(ファイル自体は手元に残ります)。

git rm -r --cached node_modules
git commit -m "Stop tracking node_modules"

wp-config.php や秘密情報を入れない

サイト全体をリポジトリにする構成では特に、wp-config.php を誤ってコミットしないよう注意します。DBのパスワードや認証用キーが含まれているため、非公開リポジトリであっても履歴に残すべきではありません。サイト全体を管理する場合のルート側 .gitignore には、少なくとも次のような行を入れます。

wp-config.php
wp-content/uploads/
wp-content/cache/
.env

アップロードされたメディア(uploads)も、サイトの運用データなのでコードのリポジトリには含めず、バックアップで別に保管するのが一般的です。万一秘密情報をコミットして共有してしまった場合は、履歴から消すだけでなく、パスワードやキーを変更してください。

style.css のバージョンと Git タグをそろえる

テーマのバージョンは、style.css 冒頭のヘッダーコメントにある Version で管理します。

/*
Theme Name: My Theme
Author: Your Name
Version: 1.2.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: my-theme
*/

番号の付け方は、互換性を壊す変更・機能追加・修正の順に「1.2.0」のように3つの数字で表すセマンティックバージョニングがよく使われます。リリースするときは、Version を上げてコミットし、同じ番号でタグを付けます。

git add style.css
git commit -m "Bump version to 1.2.0"
git tag -a v1.2.0 -m "Release 1.2.0"
git push origin main --tags

このバージョン番号は、CSSやJavaScriptを読み込むときのキャッシュ対策にも使えます。

add_action( 'wp_enqueue_scripts', function () {
    $version = wp_get_theme()->get( 'Version' );
    wp_enqueue_style( 'my-theme-style', get_stylesheet_uri(), array(), $version );
} );

wp_get_theme()->get( 'Version' ) は style.css の値を返すので、バージョンを上げるとファイルのURLに付く ?ver= も変わり、ブラウザやCDNに古いファイルが残りにくくなります。

ブランチの使い方

小規模なテーマ開発なら、main を本番に出す版、作業は機能ごとのブランチで行い、確認後に main へマージする程度で十分です。ステージング環境があるなら、ステージングには作業ブランチや develop を、本番には main やタグを反映する、と決めておくと、どの環境に何が出ているかが明確になります。

サーバーへの反映方法

Git で管理したテーマを本番に出す方法は、主に次の3つです。

  • サーバー上で git pull する:本番のテーマフォルダをクローンしておき、リリース時に git pull やタグの checkout をします。手軽ですが、.git フォルダが公開領域に置かれるため、Webサーバーで .git へのアクセスを拒否する設定が必須です。
  • rsync などで成果物だけを転送する:手元やCIでビルドしたテーマを、.git や node_modules を除いて転送します。サーバーに Git が無くても使え、不要なファイルを本番に置かずに済みます。
  • CI/CD で自動デプロイする:GitHub Actions などで、タグの作成や main へのマージをきっかけにビルドと転送を自動で行います。手作業のミスを減らせますが、サーバーの接続情報をCI側のシークレットとして安全に保管する必要があります。

どの方法でも、反映の前にはサイトのバックアップを取り、反映後はトップページと主要ページの表示、管理画面のエラー表示、ブラウザの開発者ツールでCSS・JSが読み込めているかを確認します。

(2026年10月現在)WordPress のテーマヘッダーで使える項目や、各Gitホスティングの機能は今後も変わる可能性があります。style.css のヘッダー項目は WordPress の公式ドキュメントで最新の一覧を確認してください。

まとめ

  • リポジトリにするのはテーマフォルダ(カスタマイズなら子テーマ)だけにするのが分かりやすい
  • node_modules は除外し、vendor やビルド成果物はサーバーでビルドできるかどうかで扱いを決める
  • wp-config.php、.env、uploads はコミットしない
  • style.css の Version と Git のタグを同じ番号にし、アセットの読み込みにも使う
  • 反映方法は git pull・rsync・CI/CD から選び、反映前にバックアップ、反映後に表示を確認する

お気軽にご相談ください

お見積りへ お問い合わせへ
▲