Fork（Gitクライアント）でも「git commit --allow-empty」したい（Windows版）

前職のエンジニアブログの記事を引っ張り出すのは非常に忍びないんですが。。。随分前に「[Fork（Gitクライアント）でも「git commit --allow-empty」したい](https://tech.innovator.jp.net/entry/2018/09/25/120402)」という記事を書きました。

上記の記事ではMac版についての説明でしたが、今回はWindows版について書いてみようと思います。

---

### Forkとは

話を先に進めちゃってますが、そもそも[Fork](https://git-fork.com/)をご存知でしょうか。
「Fork」というキーワードから「Git」を連想された方は正解です。
ForkはシンプルなUIが特徴のGitクライアントです。
GitHubの[Fork](https://docs.github.com/ja/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo)と名前が衝突している点が少々イマイチではありますが、わりと好みなデザインなのでMacでGitの操作を行う場合は長年使っていて、最近、Windowsにもインストールしてみました。

無料で評価利用ができ、購入する場合は $49.99 です。
「[Fork License](https://git-fork.com/license)」のページを読むと、「 `License key may be used by one user on up to 3 machines at a time on both Mac and Windows operating systems.` 」とあり、私は既にライセンス購入済みなので、MacとWindowsにインストーすることは問題ないようです。

Fork自体の紹介はこのあたりにして、本題に入りましょう。

---

### 今回のゴール

今回のゴールはForkのGUI操作で「git commit --allow-empty」を実現することです。

以前のバージョンでは「Custom Actions」という機能でしたが、最新のバージョンでは「Custom Commands」に変わっているようなので、この機能を使って設定していきます。

---

### Custom Commandsの登録方法

「File」から「Preferences…」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/5c71e483-1a0b-2ad6-5cc4-e9ca66116f0e.png)

「Custom Commands」のタブを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/db30f8ff-ba49-502f-1306-b7dc762076a9.png)

左下のプラスボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/bb11c4bd-8cf3-7bc9-8101-dc881f02b5e4.png)

メニューから「Add Commit Custom Command」を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/f86efecb-31e9-006b-3286-fded2adbf8e1.png)

「Name」に「Empty Commit Action」と入力して、「Action」の「Sh Command Run sh Script」と表示されている枠をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/0c29b980-8676-4cd5-3c50-817c26aac59d.png)

「Edit Action」画面が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/92152da6-149f-5ecc-47e9-e48631ef5a1d.png)

「 `git show ${sha}` 」と表示されている枠に「 `git commit --allow-empty -m "for WIP PR"` 」と入力し「Edit」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/176645f0-6ed6-0e4e-e712-8778d46294fd.png)

これで準備完了です。

---

### Custom Commandsの実行方法

実行したいブランチとコミットログを選択した状態でコンテキストメニューを開くと、先ほど登録した「Empty Commit Action」が表示されていますので、これを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/55e9b5ea-6b5b-88fa-cf86-ed647b0b7c79.png)

実行が成功した旨のメッセージが表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/732d4aca-a97f-ca9c-f865-1db581d8c5f7.png)

「Initial commit」の次に「for WIP PR」という空コミットが作成されていることが確認できました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/25705a46-12bb-a882-600e-d26cb06349e6.png)

これで `git commit --allow-empty -m "for WIP PR"` をForkから実行できるようになりました。

---

### 参考URL

- [軽快なGitのGUIクライアントFork](https://hugo-de-blog.com/git-fork/)
- [Gitクライアント Fork 購入記](https://qiita.com/devnokiyo/items/65590259ac033a9518f0)
- [Git Fork でストレスフリーな gitライフを Git GUI Fork の紹介](https://p4j4.hatenablog.com/entry/2020/12/18/230821)
- [Git クライアント Fork がとてもいい](https://wp.graphact.com/2020/04/29/git-client-fork/)
- [【Gitクライアント Fork】基本的なコマンドの使い方](https://qiita.com/__tomotomon/items/51abf366f973235bb9c9)