🈳

差分なしで GitHub の Pull Request を作る方法

2024/02/27に公開

GitHubにおいてファイルの差分がない状態でプルリクエストを作る方法を解説します。

背景

GitHubを活用した開発において、ファイルの差分がない状態でプルリクエストを作りたい場面が意外と多くあります。

例えば、実装開始前に作成しておくことでモブプロメンバーやレビュアーにプルリクエストを共有したい場合などです。

そんなとき、差分がない状態でプルリクエストを作成する方法を解説します。

課題

しかし、 GitHubにおいては、差分がない状態でプルリクエストを作ることができません。

試しにブランチだけ作ってみたところ、 "There isn’t anything to compare." と表示され、プルリクエストを作成するボタンが表示されません。

GitHub において差分がない状態でプルリクエストを作成しようとすると、 "There isn’t anything to compare." と表示される

解決方法

コミットの差分がない場合にプルリクエストが作成できない仕様になっているため、裏を返せば空コミットが1つでもあればプルリクエストが作成できることになります。

次の手順で実装の差分なしでプルリクエストを作成できます。

  1. ブランチを作成
  2. 空コミット
    git commit --allow-empty -m "feature"
  3. プッシュ
  4. プルリクエストを作成

GitHub において、空コミット 1 つで Open a pull request の画面に遷移できた

https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request

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

参考までに、Visual Stadio CodeのGit結合においては、差分がないと「Commit」ボタンが活性化しないという問題があります。

Visual Stadio Code において、ファイルの差分がないと「Commit」ボタンが活性化しない

と思いきや、コミットメッセージを記入した後Ctrl + Enterを入力すると、空コミットを作成するか尋ねるダイアログが表示されました。

このダイアログ上の「Create Empty Commit」ボタンを押下すると、空コミットが作成できます。

Visual Stadio Code において、コミットメッセージを記入した後 Ctrl + Enter を入力すると、空コミットを作成するか尋ねるダイアログが表示される

まとめ

GitHubにおいて、差分がない状態でプルリクエストを作成する方法を解説しました。

実装前にプルリクエストを作成したい場合に活用してみてください。

ただ、空コミットが残ってしまうという欠点があります。もし、他にもよい方法があれば教えていただけると幸いです。

Discussion