WordPressのテーマやAIツールの解説を読んでいると、「Gitでコミットして、GitHubにpushします」という説明に出会います。
初めて見ると、何のことか分かりにくいですよね。
このブログのテーマは、Gitで管理しています。コマンドを実行しているのはClaude Codeで、自分は内容と結果を確認する役です。
Gitの基本を、公式の説明と一緒にまとめます。
先に結論です。
Gitは、ファイルの変更履歴を記録して、前の状態に戻せるようにする仕組みです。
変更を記録するのが「コミット」、GitHubに送るのが「push」、GitHubから取り込むのが「pull」です。
GitとGitHubって、同じもの?
別のものだよ。Gitは変更を記録する道具で、GitHubはその記録を置いておくサービスなんだ。
Gitとは?ファイルの変更履歴を記録する仕組み
Gitは、ファイルへの変更を追跡する、バージョン管理システムです。
GitHubの公式ドキュメントでは、プロジェクトの独自のコピーで作業して、変更履歴を記録できる、と説明されています。
つまり、ファイルの変更を記録して、あとから前の状態を確認したり、戻したりするための仕組みです。
Git公式のPro Gitによると、Gitは、変更前後の差分ではなく、その時点のファイル全体の状態(スナップショット)を記録します。
履歴を見たり、コミットしたりする操作の多くは、自分のパソコンの中で完結するので、ネットワークにつながっていなくてもコミットできます。
GitHubは、Gitで管理しているプロジェクトを、クラウドに置いて共有するためのサービスです。Gitのプロジェクトは「リポジトリ」と呼ばれます。
Gitだけでも使えますが、GitHubはGitを前提にしています。
どんなときに出てくる?
Gitが出てくる場面は、たとえば3つです。
- WordPressのテーマやプラグインを、変更履歴つきで管理するとき
- GitHubで公開されているコードを、手元に取り込むとき
- Claude CodeやCodexのようなAIツールが、変更をコミットして、GitHubに送るとき
基本の流れ:編集して、記録して、送る
Gitでは、ファイルを3つの状態に分けて考えます。
Pro Gitでは、次のように説明されています。
- 修正済み:ファイルを変更したが、まだ記録していない状態
- ステージ済み:次の記録に含めるファイルに、印をつけた状態
- コミット済み:変更が、自分のパソコンのデータベースに安全に保存された状態
操作の流れは、こうです。
git add ファイル名
git commit -m "変更内容のメモ"
git push
git addで、記録するファイルに印をつけます。git commitで、変更を記録します。これがコミットです。git pushで、記録をGitHubに送ります。
逆に、GitHubにある最新の内容を取り込むのがgit pullです。
本番サーバー(実際にブログを公開しているサーバー)など、別の場所で最新のコードを使いたいときに使います。
コミットしたら、GitHubにも反映されるの?
コミットは、自分のパソコンの中に記録するだけだよ。GitHubに送るのは、pushしたときなんだ。
自分はこう使ってます
管理する対象を、自分で変更するテーマだけに絞った
このブログでは、Gitで管理するのを、自分でカスタマイズしたテーマのフォルダだけにしています。
WordPress本体と、親テーマ、アップロードした画像、データベースは、管理の対象外です。
管理対象を絞ったので、リポジトリの中身が、自分のカスタマイズだけになりました。
自分のパソコンで編集して、本番にはpullで反映する
流れは、3つの段階です。
- 自分のパソコンで、テーマの編集と、ブラウザでの見た目の確認をする
- Claude Codeが、変更をコミットして、GitHubのプライベートリポジトリにpushする
- Claude Codeが、本番サーバーにSSHでつないで、
git pullを実行する
自分は、各段階で、Claude Codeからの報告を読んで、何が行われたのかを確認します。
本番サーバーが、GitHubのプライベートリポジトリを読むための鍵は、読み取り専用のデプロイキーです。
Gitを使うと、何がうれしいの?
変更を戻せることだよ。CSSが崩れても、直前のコミットに戻せるんだ。
Gitでハマった例
Gitで管理できるのは、ファイルの変更だけです。記事本文や固定ページの内容は、WordPressのデータベース(記事などの保存先)に入っているので、Gitでは管理できません。
この件は、Git+GitHubで本番反映する仕組みを作った話に書いています。
もうひとつは、強制的に上書きするコマンドです。本番サーバー上で、Claude Codeがgit reset --hard(作業中の変更を、直前のコミットの状態に強制的に戻すコマンド)を使おうとして、ツール側の安全機構に止められました。こちらも同じ記事に書いています。
迷ったときの確認ポイント
- Gitで管理する範囲は、どこまでか。データベースの中身は、Gitの外にある
- コミットしただけで、GitHubに反映されたと思っていないか。GitHubに送るのは、pushしたとき
- 本番サーバーなど、別の場所で最新にするには、そこで
git pullが要る - 変更を強制的に上書きするコマンドは、実行する前に、何が失われるかを確認する
最初は、Gitで管理したいフォルダを決めて、コミットとpushの違いを確認してください。
あわせて知っておきたい用語
- リポジトリ
- Gitで管理しているプロジェクトの保管場所。GitHubに置いたものは、公開しない設定(プライベート)にもできる。
- デプロイキー
- サーバーから、GitHubの1つのリポジトリにアクセスするためのSSH鍵。初期状態は読み取り専用。
- SSH
- 離れたサーバーに、安全につなぐための方法。
- ターミナル
- 文字のコマンドでMacを操作するアプリ。詳しくはこちら。