美しいコミットを作成できるpummitのご紹介
なんだこれは
写真のような綺麗な形のコミットメッセージを簡単に作成出来ちゃうGo製のツールです。
スターしていただくと嬉しい限りです。
なぜこのツールを作成したのか 🧐
Qiitaに美しいコミットメッセージを作成する記事があるとQiitaので、その記事を呼んでみることにしました。
絵文字の使い方に関してはQiitaの記事を呼んでいただければ分かります。
この記事では以下のようなコミットメッセージのフォーマットが紹介されていました。
:books: READMEの修正
自分はこのフォーマットに一つだけ手を加え
:books: READMEの修正 (README.md)
何が変わったか分かりしたか?
これはコミットメッセージの末尾に変更が加えられたファイルのパスが加えられるようになりました。
この末尾にファイルパスを加えたいがだけに今回のpummit
というツールを作成しました。
(後々便利さを追求して様々な変更を加えたけど、、、)
pummitのインストール 😊
Goが入っている場合はこちらを実行してください。
go install github.com/HidemaruOwO/pummit/pummit@v1.1.3
現在latestが削除したはずのv1.1.9になっております。
最新版をインストールする場合はv1.1.3をインストールしてください。
インストールされていない場合はReleaseから環境にあったファイルをダウンロードして、以下のコマンドを実行してください。
tar xzvf pummit**.tar.gz
sudo mv pummit /usr/local/bin
使い方 💨
pummitは2つの方法で使用することができます。
楽に入力できるわよ。
pummit emojiprefix 'subject'
# or
pummit 'emojiprefix subject'
# Example
pummit sparkles 'I am unko man'
# Run: git commit -m ':sparkles: I am unko man (path/to/added/file, path/to/added/file)'
pummit 'sparkles I am unko man'
# Run: git commit -m ':sparkles: I am unko man (path/to/added/file, path/to/added/file)'
絵文字プレフィックスのサンプル 🌟
pummitを使用するにあたって絵文字プレフィックスを知って置くことが必要なので、自分が使っている絵文字プレフィックスをどうぞ。
これはQiitaの記事で紹介されていたものに少し改変を加えたものです。
# ==================== Emojis ====================
# 🎉 :tada: 初めてのコミット(Initial Commit)
# ♻️ :recycle: マージ(Merge)
# 🔖 :bookmark: バージョンタグ(Version Tag)
# ✨ :sparkles: 新機能(New Feature)
# 🐛 :bug: バグ修正(Bagfix)
# 👀 :eyes: リファクタリング(Refactoring)
# 📚 :books: ドキュメント(Documentation)
# 🎨 :art: デザインUI/UX(Accessibility)
# 🐎 :horse: パフォーマンス(Performance)
# 🔧 :wrench: ツール(Tooling)
# 🚨 :rotating_light: テスト(Tests)
# 💩 :hankey: 非推奨追加(Deprecation)
# 🗑️ :wastebasket: 削除(Removal)
# 🚧 :construction: WIP(Work In Progress)
# ☃️ :snowman: 仕様変更
# ==================== Format ====================
# :emoji: Subject (Dir/AddedFile Dir/AddedFile)
#
# Commit body...
lazygitで使うには 🔍
lazygitを使っている方もいるでしょう。
lazygitとはGitをCLIでTUIで操作できるグラフィカルなクライアントです。
インストールすることをオススメします。
lazygitでpummitを扱いたい場合は、以下のキーバインドを.config/lazygit/config.yml
に設定してください
customCommands:
- key: 'c'
prompts:
- type: 'input'
title: 'Commit message'
initialValue: ''
command: "pummit '{{index .PromptResponses 0}}'"
context: 'files'
description: 'commit changes(Custom Command)'
エイリアス機能ってなに? 📎
例えばwastebasket
を入力するのは少し大変ですが、エイリアス機能を使うとwb
で簡単に入力できるようになります。
$ pummit wb モジュールの削除
# Result: :wastebasket: モジュールの削除 (path/to/added/file)
Add command
このコマンドはエイリアスを追加することが出来ます。
$ pummit alias add 's' 'sparkles'
この場合ではs
というエイリアスを入力するだけでコミットメッセージのEmoji prefixにsparkles
を代入できるようになります。
$ pummit s 新機能の追加
# Run: git commit -m ':sparkles: 新機能の追加 (path/to/added/file)'
Delete command
このコマンドはエイリアスを削除することが出来ます。
$ pummit alias delete s
この場合では、s=spakles
というエイリアスが登録されている前提でこのコマンドを実行した場合s
とsparkles
の関連付けがなくなるため、以下のコマンドを実行してもEmoji prefixにはs
しか代入されません。
$ pummit s 新機能の追加
# Run: git commmit -m ':s: 新機能の追加 (path/to/added/file)'
また引数に削除したいエイリアスを複数指定することが出来ます。
$ pummit alias delete s sm c h
Delete --all command
このコマンドは登録されているエイリアスを全て削除します。
$ pummit alias delete --all
List command
このコマンドは登録されているエイリアスを全て表示します。
$ pummit alias list
もし、エイリアスにs=sparkles
とt=tada
が登録されている場合は以下のように出力されます。
📎 There is aliases
Alias : Prefix : Emoji
s : sparkles : ✨
t : tada : 🎉
Reset command
このコマンドをエイリアスをリセットします。
$ pummit alias reset
もし、エイリアスがこのように沢山あって混乱するほどあったり、config.json
を直接弄ってバグらせてしまったときのリカバリとして使うことが出来ます。
$ pummit alias list
📎 There is aliases
Alias : Prefix : Emoji
----------------------
hjjciiiisadsadasda : sparkles : ✨
w : wrench : 🔧
s : sparkles : ✨
l : rotating_light : 🚨
p : hankey : 💩
wb : wastebasket : 🗑️
c : construction : 🚧
sm : snowman : ☃️
hj : sparkles : ✨
hjjjksda : sparkles : ✨
hjjca : sparkles : ✨
hjjciiiia : sparkles : ✨
a : art : 🎨
h : horse : 🐎
r : recycle : ♻️
t : tada : 🎉
b : bug : 🐛
e : eyes : 👀
d : books : 📚
このようにエイリアスが混乱するほどある場合でも
$ pummit alias reset
> May I reset the aliases? :(Y/n) y
[INFO] Alias reseted
📎 There is aliases
Alias : Prefix : Emoji
----------------------
sm : snowman : ☃️
h : horse : 🐎
w : wrench : 🔧
l : rotating_light : 🚨
p : hankey : 💩
wb : wastebasket : 🗑️
c : construction : 🚧
r : recycle : ♻️
s : sparkles : ✨
t : tada : 🎉
e : eyes : 👀
b : bug : 🐛
d : books : 📚
a : art : 🎨
コマンド一つでこのような綺麗な状態に戻せます。
Discussion