Ahmad Awais



๐Ÿš€ Emoji-Log โ€” A New Way to Write Your Git Commit Messages and Changelogs

Ahmad AwaisAhmad Awais
๐Ÿ™Œ Howdy! This piece is a part of my 2018 Year in Review (read the context) โ†’

Emoji log is a new way to write your Git Commit Messages. I like emoji. I like โ€™em a lot. Programming, code, geeks, nerds, open source, all of that is inherently dull and sometimes boring. I improve that by using Emoji.

I also am a big fan of the Don’t Repeat Yourself (DRY) philosophy and believe writing better Git commit messagesโ€”ones that are contextual enough to serve as a changelog for your open source softwareโ€”is an important component of DRY.

One of the many workflows I’ve written is Emoji-Log, a straightforward, open source Git commit log standard. It improves the developer experience (DX) by using emoji to create better Git commit messages. For more check out my article on OpenSource.com

Emoji-Log’s philosophy

Instead of memorizing hundreds of emoji, I’ve learned it’s better to keep the categories small and general. Here’s the philosophy that guides writing commit messages with Emoji-Log:

  1. IMPERATIVE: Make your Git commit messages imperative. Write commit message like you’re giving an order.
    โ€” Use โœ… Add instead of โŒ Added.
    โ€” Use โœ… Create instead of โŒ Creating.
  2. RULES: A small number of categories are easy to memorize. Nothing more, nothing less. There are only six types of Emoji log. One should only use these six types and nothing else. Which are
    โ†’ ๐Ÿ“ฆ NEW: [Git Commit Message goes here]
    โ†’ ๐Ÿ‘Œ IMPROVE: [Git Commit Message goes here]
    โ†’ ๐Ÿ› FIX: [Git Commit Message goes here]
    โ†’ ๐Ÿ“– DOC: [Git Commit Message goes here]
    โ†’ ๐Ÿš€ RELEASE: [Git Commit Message goes here]
    โ†’ โœ… TEST: [Git Commit Message goes here]
  3. ACTIONS: Make Git commits based on actions you take. Use a good editor like VSCode to commit the right files with commit messages.
๐ŸŒŸ I recommend that you check out and Star the Emoji-log repo โ†’

Helping businesses build developer-led adoption for 10+ yrs.
VP of Developer Relations and Google Developers Advisory Board (gDAB) founding member.

๐Ÿ“Ÿ Edutainer at Node.js CLI Automation course (100 videos ยท 22 Projects) & VSCode.pro course. Over 36K devs learning. ๐ŸŽฉ Award-winning Open Source Engineer & Dev Advocate ๐ŸฆŠ Google Developers Expert Web DevRel ๐Ÿš€ Mars Ingenuity Helicopter code contributor ๐Ÿ† 8th GitHub Stars Award recipient ๐ŸŒณ Node.js foundation Community Committee Outreach Lead, Member Linux Foundation, OpenAPI Business Governing Board, and DigitalOcean Navigator.

โœŒ๏ธ Author of various open-source dev-tools and software libraries used by millions of developers worldwide โ“ฆ WordPress Core Developer ๐Ÿ“ฃ TEDx Speaker with 100+ international talks.

โœจ As quoted by: Satya Nadella ยท CEO of Microsoft โ€” Awais is an awesome example for developers.
๐Ÿ™Œ Leading developers and publishing technical content for over a decade ๐Ÿ’œ Loves his wife (Maedah) โฏ Read more about Ahmad Awais.

๐Ÿ‘‹โ€ฆ Awais is mostly active on Twitter @MrAhmadAwais


Developers Takeaway

Stay ahead in the web dev community with Ahmad's expert insights on open-source, developer relations, dev-tools, and side-hustles. Insider-email-only-content. Don't miss out - subscirbe for a dose of professional advice and a dash of humor. No spam, pinky-promise!

โœจ 172,438 Developers Already Subscribed
Comments 2
  • Marco
    Posted on

    Marco Marco

    Reply Author

    This is great! One silly question if I may… When trying to add and commit one item, I can’t seem to figure out the best way to do this. I have tried e.g.
    git add then
    git commit -m “:package: Add nav and logo”

    This gives me the desired result in my github repo but in my git log I see :package: rather than the box emoji. I’ve also tried using U+1F4D6 instead of :package:

    If I use gnew/gimp etc. everything works as expected.

    What am I screwing up?

    • Ahmad Awais
      Posted on

      Ahmad Awais Ahmad Awais

      Reply Author

      Glad you liked it. A couple of things.

      1. I recommend using actual emoji instead of :package: like shortcodes that only work for GitHub which is no Git
      2. Read Show Emoji in Git Log post to update your Git’s pager
      3. I recommend using one of these workflows โ†’

      Peace! โœŒ๏ธ