Emoji-Log โ An Emoji Git commit log messages spec. [ ๐ฆ๐๐๐๐๐ค โผ๏ธ]
EMOJI-LOG
After building hundreds of open source software I've ended up inventing a git commit log standard called EMOJI-LOG that helps me understand a project's history with a less cognitive load just by looking at the git log.

PHILOSOPHY
I like emoji. I like โem a lot. Programming, code, geeks/nerds, open-source, all of that is inherently dull and sometimes boring. Emoji (which is, in fact, the plural of emoji) helps me add colors and emotions to the mix. Nothing wrong if you want to attach feelings to this 2D flat text-based world of code. I found out that instead of memorizing hundreds of emoji it's better to keep the categories small and general.
- IMPERATIVE โ
Add instead of โ Added.
- E.g., Use โ
Create instead of โ Creating.
- RULES โ
๐ฆ NEW, ๐ IMPROVE, ๐ FIX, ๐ DOC, ๐ RELEASE, ๐ค TEST, and โผ๏ธ BREAKING
- ACTIONS โ

GETTING STARTED
Only use the following Git Commit Messages. A simple and small footprint is critical here.
๐ฆ NEW: IMPERATIVEMESSAGEGOES_HERE
๐ฆ NEW: Add Git ignore file
๐ IMPROVE: IMPERATIVEMESSAGEGOES_HERE
๐ IMPROVE: Remote IP API Function
๐ FIX: IMPERATIVEMESSAGEGOES_HERE
๐ FIX: Case conversion
๐ DOC: IMPERATIVEMESSAGEGOES_HERE
README.md, or even inline docs.
> E.g. ๐ DOC: API Interface Tutorial
๐ RELEASE: IMPERATIVEMESSAGEGOES_HERE
๐ RELEASE: Version 2.0.0
๐ค TEST: IMPERATIVEMESSAGEGOES_HERE
๐ค TEST: Mock User Login/Logout
โผ๏ธ BREAKING: IMPERATIVEMESSAGEGOES_HERE
โผ๏ธ BREAKING: Change authentication protocol
โ That's it for now. Nothing more nothing less.

THE WORKFLOW & MEANINGS
I'd like to share what each of these emojis mean.
๐ฆ NEW:Emoji meaning: A "package emoji" โ which can contain new stuff.๐ IMPROVE:Emoji meaning: An "OK Hand emoji" โ which is meant to appreciate an improvement.๐ FIX:Emoji meaning: A "bug emoji" โ which means there was a bug that got fixed.๐ DOCS:Emoji meaning: A "book emoji" โ which means documentation or notes just like in a book.๐ RELEASE:Emoji meaning: A "rocket emoji" โ which is meant to show a new release/launch.๐ค TEST:Emoji meaning: A "robot emoji" โ which says some test were run successfully.โผ๏ธ BREAKING:Emoji meaning: A "bangbang emoji" โ which attracts attention to a breaking change.
VSCode Extension
If you use VSCode, then I have built an extension Emoji-Log for VSCode. This can help you write git commit messages quickly.
Bash/Zsh Workflow
For quick prototyping, I have made the following functions that you can add to your .bashrc/.zshrc files and use Emoji-Log quickly.
#.# Better Git Logs.
Using EMOJI-LOG (https://github.com/ahmadawais/Emoji-Log).
Git Commit, Add all and Push โ in one step.
gcap() {
git add . && git commit -m "$*" && git push
}
NEW.
gnew() {
gcap "๐ฆ NEW: $@"
}
IMPROVE.
gimp() {
gcap "๐ IMPROVE: $@"
}
FIX.
gfix() {
gcap "๐ FIX: $@"
}
RELEASE.
grlz() {
gcap "๐ RELEASE: $@"
}
DOC.
gdoc() {
gcap "๐ DOC: $@"
}
TEST.
gtst() {
gcap "๐ค TEST: $@"
}
BREAKING CHANGE.
gbrk() {
gcap "โผ๏ธ BREAKING: $@"
}
gtype() {
NORMAL='\033[0;39m'
GREEN='\033[0;32m'
echo "$GREEN gnew$NORMAL โ ๐ฆ NEW
$GREEN gimp$NORMAL โ ๐ IMPROVE
$GREEN gfix$NORMAL โ ๐ FIX
$GREEN grlz$NORMAL โ ๐ RELEASE
$GREEN gdoc$NORMAL โ ๐ DOC
$GREEN gtst$NORMAL โ ๐งช๏ธ TEST
$GREEN gbrk$NORMAL โ โผ๏ธ BREAKING"
}
Fish Shell Workflow
To install these functions for the fish shell, run the following commands:
function gcap; git add .; and git commit -m "$argv"; and git push; end;
function gnew; gcap "๐ฆ NEW: $argv"; end
function gimp; gcap "๐ IMPROVE: $argv"; end;
function gfix; gcap "๐ FIX: $argv"; end;
function grlz; gcap "๐ RELEASE: $argv"; end;
function gdoc; gcap "๐ DOC: $argv"; end;
function gtst; gcap "๐ค TEST: $argv"; end;
function gbrk; gcap "โผ๏ธ BREAKING: $argv"; end;
funcsave gcap
funcsave gnew
funcsave gimp
funcsave gfix
funcsave grlz
funcsave gdoc
funcsave gtst
funcsave gbrk
Git Aliases
If you prefer, you can paste these aliases directly in your ~/.gitconfig file:
# Make sure you're adding under the [alias] block.
[alias]
# Git Commit, Add all and Push โ in one step.
cap = "!f() { git add .; git commit -m \"$@\"; git push; }; f"
# NEW. new = "!f() { git cap \"๐ฆ NEW: $@\"; }; f" # IMPROVE. imp = "!f() { git cap \"๐ IMPROVE: $@\"; }; f" # FIX. fix = "!f() { git cap \"๐ FIX: $@\"; }; f" # RELEASE. rlz = "!f() { git cap \"๐ RELEASE: $@\"; }; f" # DOC. doc = "!f() { git cap \"๐ DOC: $@\"; }; f" # TEST. tst = "!f() { git cap \"๐ค TEST: $@\"; }; f" # BREAKING CHANGE. brk = "!f() { git cap \"โผ๏ธ BREAKING: $@\"; }; f"

USING EMOJI-LOG
Here's a list of repos that make use of Emoji-Log.
- Create-Guten-Block Toolkit โ
- VSCode Shades of Purple Theme โ
- Ahmad Awais GitHub Repos โ โ Latest repos on this account._
- CaptainCore CLI (WordPress Management Toolkit) โ
- CaptainCore GUI (WordPress plugin) โ
- You?! Add your repo to the list after adding the Emoji-log badge to your readme.

Alfred Snippets
Alfred PowerPack users can use the Snippets feature to quickly call Emoji-Log, or use the text expand feature for even quicker creation.
To setup:
- Have Alfred 3 with PowerPack installed
- For auto expansion, in Alfred Settings ยป Features ยป Snippets ensure the "Automatically expand snippets by Keyword" box is checked
- Download & open
Emoji-Log.alfredsnippets, deselecting "Strip snippets of 'auto expand' flag" when prompted
| Keyword | Snippet | | ------- | ------------ | | ;gnew | ๐ฆ NEW: | | ;gimp | ๐ IMPROVE: | | ;gfix | ๐ FIX: | | ;grlz | ๐ RELEASE: | | ;gdoc | ๐ DOC: | | ;gtst | ๐ค TEST: | | ;gbrk | โผ๏ธ BREAKING: |
To edit the ; prefix to your preferred expansion flag, double click right click the Emoji-Log Collection in Alfred Settings ยป Features ยป Snippets.
TextExpander Snippets are also available. Download & open Emoji-Log.textexpander to import.
Raycast Snippets
Raycast users can use the Snippets feature to quickly expand Emoji-Log commit messages with text shortcuts.
To setup:
- Download the
emoji-log-raycast-snippets.jsonfile - Open Raycast โ Snippets
- Select "Import Snippets"
- Choose the downloaded JSON file
| Keyword | Snippet | | ------- | ------------ | | ;gnew | ๐ฆ NEW: | | ;gimp | ๐ IMPROVE: | | ;gfix | ๐ FIX: | | ;grlz | ๐ RELEASE: | | ;gdoc | ๐ DOC: | | ;gtst | ๐ค TEST: | | ;gbrk | โผ๏ธ BREAKING: |
Pro Tip: You can also generate the snippets file programmatically by running node generate-raycast-snippets.js in the repository root.

EMOJI-LOG BADGE COLLECTION
If your repo uses EMOJI-LOG then you can add any of the following badges to your read me and send me a PR to list your repo here.
- STYLE: Flat Square
- MARKDOWN โ

- HTML โ
<a href="https://github.com/ahmadawais/Emoji-Log/"><img alt="emoji-log" src="https://cdn.rawgit.com/ahmadawais/stuff/ca97874/emoji-log/flat.svg" /></a>
- STYLE: Flat Rounded
- MARKDOWN โ

- HTML โ
<a href="https://github.com/ahmadawais/Emoji-Log/"><img alt="emoji-log" src="https://cdn.rawgit.com/ahmadawais/stuff/ca97874/emoji-log/flat-round.svg" /></a>
- STYLE: Non-flat Rounded
- MARKDOWN โ

- HTML โ
<a href="https://github.com/ahmadawais/Emoji-Log/"><img alt="emoji-log" src="https://cdn.rawgit.com/ahmadawais/stuff/ca97874/emoji-log/non-flat-round.svg" /></a>
Sponsor
Me (Ahmad Awais) and my incredible wife (Maedah Batool) are two engineers who fell in love with open source and then with each other. You can read more about me here. If you or your company use any of my projects or like what Iโm doing then consider backing me. I'm in this for the long run. An open-source developer advocate.
- ๐ $9.99/month (recommended) โฏ Two cups of Caffรจ latte (coffee) every month โ
- ๐ $99.99 (one-time sponsor) โฏ Support an hour of open-source code โ
- ๐ฐ $49.99 (one-time sponsor) โฏ Support an hour of maintenance โ
- โ๏ธ $9.99 (one-time sponsor) โฏ Lunch/coffee โ
License & Conduct
- MIT ยฉ Ahmad Awais
- Code of Conduct
- Munawar for making awesome badges



