LoginSignup
78
51

More than 3 years have passed since last update.

コミットメッセージにつけたいprefix絵文字を選択して簡単にcommitできるシェルスクリプトを書いた

Last updated at Posted at 2019-05-04

背景

コミットメッセージにprefix絵文字がついていると、PR見るときにちょっと楽しくなります。
だけど、つけようと思っても忘れがちだし、どの絵文字使おうか〜うん〜っていう時間こそ無駄だったので、「prefixにしたい絵文字が選んでcommitできる」コマンドを作りました😄
ちなみにaddからcommitまで一貫してこのコマンド一つで完結します。

repositoryはこちら👉github-convs

どんなコマンドか

今回作成したコマンド git-add-cmt をターミナルで入力すると以下のようなことができます。

rvkj9-egbmb.gif

  1. addしたいファイルを選択
  2. prefixとしてつけたいemojiを選択
  3. commitメッセージを入力

これで無事commitされました🎉
image.png

コード紹介

コード紹介といっても、たったこれだけ🎉

※ ターミナル上で「選択させる」ためにfzf を使っています

github-convs.zsh
git-add-cmt(){
  LF=$'\\\x0A' #改行
  git diff --color-words
  FILES=$(git status --short | sed '1s/^/ALL .'"$LF"'/' | fzf -m --prompt="SELECT_ADD_FILES (multi:tab) > " | tr '\n' ' ')
  EMOJI=$(echo $EMOJI_LIST | fzf -m --prompt="SELECT_PREFIX_EMOJI> " | cut -d ' ' -f 1)
  echo "\U1F4DD write commit message (quit ctr+C) >"
  read MSG
  git add $(echo $FILES | awk '{print $2}') && \
    echo $FILES && \
    echo "::::::::::::::::  add\U1F374  ::::::::::::::::" && \
    git commit -m $EMOJI$MSG && \
    echo ":::::::::::::::: commit\U1F35D ::::::::::::::::"
}

git statusから抽出した変更ファイルをfzfに食わせて、ユーザーに選択させるようにします。(fzf便利!)
emojiも同様に食わせて、cutコマンドでコミットメッセージにくっつけるときに必要な箇所のみ切り取っています。

emojiのテンプレートは こちら を参考にさせていただきました。

EMOJI_LIST="
🐛 バグ修正 
👍 機能改善
✨ 部分的な機能追加
🎉 盛大に祝うべき大きな機能追加
♻️ リファクタリング
🚿 不要な機能・使われなくなった機能の削除
💚 テストやCIの修正・改善
👕 Lintエラーの修正やコードスタイルの修正
🚀 パフォーマンス改善
🆙 依存パッケージなどのアップデート
🔒 新機能の公開範囲の制限
👮 セキュリティ関連の改善"

そしてそれらをaddしてcommit、といった要領です。

面倒なgitコマンド操作を自動でやってくれるし、emojiも簡単につけれちゃうよ💝というコマンドでした。
ちなみに他にもcheckoutとかPR一発で開けるのとかたくさんのコマンド作ってます😊

78
51
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
78
51