GitHubのコミットメッセージに絵文字を入れて開発効率をあげる

## Emoji Prefixを導入して楽しくコミットメッセージを書こう🤘
## 🌟 Emoji Prefix とは❓

文字通り、Prefixを絵文字にしましょってこと。😎
Gitでコミットメッセージを作成する際、先頭に絵文字をつけるだけです。

### Prefixとは❓

**Prefix**と調べると**接頭辞**とでてきます。
> 接頭辞（せっとうじ）とは、接辞のうち、語基よりも前に付くもの。接頭語（せっとうご）とも言う。
[wiki](https://ja.wikipedia.org/wiki/%E6%8E%A5%E9%A0%AD%E8%BE%9E)

#### コミットメッセージ例文

[commit_message_example](https://gist.github.com/mono0926/e6ffd032c384ee4c1cef5a2aa4f778d7)

[ChangeLogを支える英語](https://gist.github.com/fkei/6738593)

チームで決まりを作ってプログラムの**追加**、**変更**、**削除**をわかりやすい形で決めを作ってまとめる事はどのプロジェクトでも見かけると思います。

その際、Prefixとして使われるのは「Add:」「Fix:」「Change:」「Update:」「Delete:」などだと思います。

### Emoji Prefix を使う利点

* **コミットメッセージを見た時にわかりやすい❗**
* **開発のテンションが上がる❗**

![Screen Shot 2018-04-01 at 11.34.47.png](https://qiita-image-store.s3.amazonaws.com/0/73994/dbb91f65-8728-5aa7-6864-3f9d6b7c8c9c.png)

だいぶ見やすいと感じませんか❓
少なくとも賑やかさが伝われば幸いです。


### Emoji Prefix の作り方

#### 手順

##### 1. 決まりを作る

**決まりを作りましょう❗**
絵文字を何でもかんでも先頭につければいいというわけではありません。
プロジェクト内で意味を統一する事でよりわかりやすいコミットメッセージになります。
`README.md`などにまとめておくとわかりやすいと思います。:memo:

| type | emoji |
|:-:|:-:|
|  初めてのコミット（Initial Commit） |  🎉 |
|  バージョンタグ（Version Tag） |  🔖  |
| 新機能（New Feature）  |  ✨ |
| バグ修正（Bugfix）  |  🐛 |
| リファクタリング(Refactoring)  | ♻️  |
| ドキュメント（Documentation）  |  📚 |
| デザインUI/UX(Accessibility)  |  🎨 |
| パフォーマンス（Performance）  |  🐎 |
| ツール（Tooling）  |  🔧 |
|  テスト（Tests） |  🚨 |
|  非推奨追加（Deprecation） |  💩 |
|  削除（Removal） |  🗑️ |
| WIP(Work In Progress)  |  🚧 |

##### 2. 【テンプレ作り】 絵文字を選ぶ

https://gitmoji.carloscuesta.me/

##### 3. 【テンプレ作り】 Gistに追加

```
# ==================== Emojis ====================
# 🎉  :tada: 初めてのコミット（Initial Commit）
# 🔖  :bookmark: バージョンタグ（Version Tag）
# ✨  :sparkles: 新機能（New Feature）
# 🐛  :bug: バグ修正（Bugfix）
# ♻️  :recycle: リファクタリング(Refactoring)
# 📚  :books: ドキュメント（Documentation）
# 🎨  :art: デザインUI/UX(Accessibility)
# 🐎  :horse: パフォーマンス（Performance）
# 🔧  :wrench: ツール（Tooling）
# 🚨  :rotating_light: テスト（Tests）
# 💩  :hankey: 非推奨追加（Deprecation）
# 🗑️  :wastebasket: 削除（Removal）
# 🚧  :construction: WIP(Work In Progress)


# ==================== Format ====================
# :emoji: Subject
#
# Commit body...
```

上記のようにまとめてGistに追加 :pencil:

ちなみに自分が使っているGistは以下のURLにまとめてあります。

https://gist.github.com/Jung0/56d527ed5d2c783661f7d56c46332308

##### 4. Gitのコミットメッセージテンプレ設定に追加

Gitはコミットメッセージのテンプレート設定をすることができます。

<img width="757" alt="Screen Shot 2018-04-01 at 13.52.24.png" src="https://qiita-image-store.s3.amazonaws.com/0/73994/95c3456d-56a6-d9db-dd64-2b8be34c4148.png">


###### clone
`$ git clone https://gist.github.com/Jung0/56d527ed5d2c783661f7d56c46332308`

###### コミットメッセージを書く際のテンプレを設定する
`$ git config commit.template ダウンロードしたディレクトリ/.commit_template`

ちなみに、`--global`オプションを追加するとすべてのプロジェクトで同じテンプレートを設定できます。
`$ git config --global`

###### **:wastebasket: テンプレートの登録解除**

基本`config`ファイルに追記されるのでそれを消す。

下記の部分をコメントアウトor削除すればよし。

ディレクトリはプロジェクトの`.git/config` or `$HOME/.gitconfig`

```config
[commit]
	template = ダウンロードしたディレクトリ/.commit_template
```

## 最後に

たかがEmojiを先頭につけるだけだろと思うかもしれませんが、効果は想像以上だと思います。

カラフルなリポジトリになるので途中からプロジェクトに入って来た方などには驚かれます笑 🤩

## 参考

https://github.com/atom/atom/blob/master/CONTRIBUTING.md#git-commit-messages
https://goodpatch.com/blog/beautiful-commits-with-emojis/

とても参考になりました。ありがとうございます。🙇