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 の手動トリガーができる | 履歴が増えすぎてノイズになる |
リポジトリの初期化に便利 | チーム開発では誤解を生む可能性がある |
特定のブランチを事前作成できる | 無駄なプッシュが増える |
コミットログをメモ代わりに使える | 一部のプロジェクトでは禁止されることもある |
空コミットは、使い方次第で非常に便利ですが、
運用ルールをしっかり決めて活用することが重要です。