プログラミング PR

Gitで空コミットを作成する方法とその活用シーン

記事内に商品プロモーションを含む場合があります

Gitを使っていると「空コミット(Empty Commit)」というものを作成したい場面に遭遇することがあります。
しかし、Gitはデフォルトでは変更のないコミットを許可していません。
そこで git commit --allow-empty を使用することで、変更がないままコミットを作成することができます。

本記事では、Gitで空コミットを作成する方法と、その活用例について詳しく解説します。


Gitで空コミットを作る方法

Gitでは、通常の git commit コマンドでは変更のないコミットを作成できません。
しかし、以下のコマンドを使うことで、空のコミットを作成できます。

git commit --allow-empty -m "最初の空コミット"

このコマンドを実行すると、変更のない状態で 最初の空コミット というメッセージのコミットが作成されます。


GitHubでの空コミットの活用例

GitHub Actions のトリガーとして

GitHub Actions では、特定のブランチにプッシュした際にワークフローを実行できます。
そのため、リポジトリのワークフローを手動で実行したい場合、以下のように空コミットを行うことで簡単に再実行できます。

git commit --allow-empty -m "Trigger GitHub Actions"
git push origin main

初期リポジトリのセットアップ

リポジトリを作成したばかりの段階では、ファイルが存在しないことが多いですが、
git init 直後に git commit --allow-empty を使うことで、
「空のリポジトリ」ではなく、明確なスタートポイントを作ることができます。

git init
git commit --allow-empty -m "Initial empty commit"
git branch -M main
git remote add origin <リモートリポジトリのURL>
git push -u origin main

特定のブランチを作成するため

例えば、デプロイ専用の deploy ブランチを作りたい場合、
ブランチを作成する前に空コミットを作成しておくと、ブランチの管理がしやすくなります。

git checkout --orphan deploy
git commit --allow-empty -m "Create deploy branch"
git push origin deploy


(おまけ) Visual Studio Code で空コミットする方法

VS CodeのGitインターフェースでは、デフォルトで変更のないコミットは許可されていません。
そのため、ターミナルを開いて git commit --allow-empty を実行する必要があります。

VS Codeのターミナルを開くには、以下のショートカットを使用します。

  • Windows: Ctrl + ~
  • Mac: Cmd + ~

その後、以下のコマンドを入力して実行します。

git commit --allow-empty -m "VS Code からの空コミット"

空コミットのメリット・デメリット

メリット

GitHub Actions のトリガーとして活用できる

空コミットを作成してプッシュすることで、GitHub Actions のワークフローを手動でトリガーすることができます。
これは特に CI/CDのデバッグ定期的なスクリプト実行 に役立ちます。

リポジトリの初期化に便利

新しいGitリポジトリを作成した際、最初の変更がない状態でも git commit --allow-empty を実行すれば、
「空のコミット」を作成でき、リモートリポジトリにブランチを作成しやすくなります。

特定のブランチを事前に作成できる

例えば、デプロイ専用ブランチ (deploy) を最初に作成する場合、
空コミットを作成してプッシュすることで、ブランチの存在を明示できます。

git checkout --orphan deploy
git commit --allow-empty -m "Create deploy branch"
git push origin deploy

コミットログを利用したメモ書きができる

開発中に「ここで分岐して試したい」と思ったときに、空コミットを使うことで
後で履歴をたどりやすくすることができます。

git commit --allow-empty -m "試作Aパターン開始"

デメリット

履歴が増えすぎるとノイズになる

空コミットを頻繁に作成すると、git log で履歴を確認する際に
「意味のないコミット」が多くなり、重要な変更を探しづらくなることがあります。

チーム開発では誤解を生む可能性がある

チームで開発している場合、「変更がないのにコミットがある」と誤解されることがあります。
そのため、空コミットを使う場合は チームメンバーと運用ルールを決める ことが重要です。

無駄なプッシュが増える

空コミットを作成すると、リモートリポジトリにも不要な履歴が増えます。
特にブランチ管理が厳しいプロジェクトでは、
「空コミットを禁止」するポリシーが設定されている場合もあります。


まとめ

  • git commit --allow-empty を使うと、変更のないコミットを作成できる。
  • GitHub Actions のトリガー、初期リポジトリのセットアップ、特定のブランチ作成に便利。
  • VS Code で空コミットする場合は、ターミナルで実行する必要がある。
メリットデメリット
GitHub Actions の手動トリガーができる履歴が増えすぎてノイズになる
リポジトリの初期化に便利チーム開発では誤解を生む可能性がある
特定のブランチを事前作成できる無駄なプッシュが増える
コミットログをメモ代わりに使える一部のプロジェクトでは禁止されることもある

空コミットは、使い方次第で非常に便利ですが、
運用ルールをしっかり決めて活用することが重要です。