Emojis for Better Git Commit Messages
Babak K. Shandiz
Posted on July 18, 2020
๐ UPDATE 1: You can now access the underlying dataset of this post via git-emoji/dataset-js repository on GitHub. It's also available as a NPM package; @git-emoji/dataset-js
.
๐ UPDATE 2: This is now available as a VS Code extension, named Git-Emoji. You can install it from within VS Code or via extensions marketplace. You can also see this short blog post on this new extension.
I have to confess that I'm madly in love with emojis. They're cute, little digital beings that convey your emotions or meaning far better/deeper/shorter than words. Using them in git commit messages was a truly brilliant idea from whom we'd never know. Speaking of commit messages, it's obvious we're not going to leverage the emotional charge of the emojis --at least for now-- but their terseness and excellent readability is their best merit we could use. Let alone their diversity, wide availability, and text nature.
The problem with emojis
As a big fan, I use them almost everywhere I can replace them for words, though sometimes it's a little difficult to find the right emoji. When it comes to writing git commit messages, people won't feel good for wasting 15 minutes looking for the best emoji on the context. That's one reason, I guess, that emojis are yet to grow popular. There are few cases that our exact intention easily matches with an emoji. In most cases you have to rephrase, rethink or reshape your words to find that hidden one. I get it. That's why I started to write an article on the subject to list some of my favorite emojis that you'll find extremely useful in your day-to-day experience.
Emoji rock stars
I myself first saw this neat GitHub Gist on the emoji recommendations. The author, Franรงois, did cover a wide range of situations. In the beginning, I've been trying to stick with them but sometimes it was hard to find my intent within the list. So, I began to deliberately collect my own emoji rock stars.
This is my list:
Emojis | Example commit message(s) |
---|---|
๐ :tada:
|
First commit |
๐จ :hammer:
|
Update code Improve code |
๐ :scroll: โ๏ธ :pencil: ๐ :books: ๐ :memo: ๐ :book:
|
Update README.md Add docs |
๐ :tshirt: ๐ :necktie:
|
Apply linter Format code |
โ๏ธ :alembic: ๐งช :test_tube:
|
Add tests Update unit tests |
๐ถ :baby:
|
Add basic implementation Add partial impl. |
๐
:medal_sports:
|
Finish implementation |
โคด๏ธ :arrow_heading_up:
|
Upgrade dependency Upgrade version |
โคต๏ธ :arrow_heading_down:
|
Downgrade dependency Downgrade version |
๐จ :art: ๐ :nail_care: ๐ :lipstick:
|
Improve visuals Enhance UI/UX |
โฟ๏ธ :wheelchair:
|
Improve accessibility features |
โจ :sparkles: ๐ฟ :shower:
|
Clean code |
๐ฅ :fire: ๐ซ :gun: โ๏ธ :scissors:
|
Delete directory Remove unnecessary files |
๐ฉ :poop: ๐ :spaghetti:
|
Mess up legacy code Apply dirty patch |
โก๏ธ :zap:
|
Introduce breaking changes |
๐ :bug:
|
Fix bug |
๐ง :construction:
|
Apply temporary patch Improve work in progress |
๐ :ambulance:
|
Apply urgent fix Fix critical bug |
๐ :crescent_moon:
|
Update nightly builds config Create background jobs |
๐ฐ :rabbit:
|
Add RabbitMQ requirements |
๐ :whale:
|
Add Dockerfile Update docker-compose |
:octocat: |
Add .github dir (only on github.com ) |
๐ฆ :fox_face:
|
Add .gitlab dir Update .gitlab-ci.yml |
๐ :gift: ๐ฆ :package:
|
Add new dependencies Add new feature |
๐ :bell:
|
Add alarm/warning |
๐ :no_bell: ๐ :mute:
|
Silence alarms/warnings |
๐ :closed_lock_with_key: ๐ :lock: ๐ก :shield:
|
Improve security Set more permissions |
๐ :unlock: ๐ :key:
|
Lift permissions Remove restrictions |
๐ :file_folder:
|
Change dir structure |
โ๏ธ :watch: โฑ :stopwatch:
|
Add profiler Add performance measurements |
๐ :bar_chart:
|
Improve performance |
๐ :bookmark:
|
Update version |
๐ :school_satchel: ๐ :rocket:
|
Build and pack Make ready for deployment/launch |
๐ :chart_with_upwards_trend:
|
Improve performance |
๐ :chart_with_downwards_trend:
|
Minimize resource usage |
๐ :paperclip:
|
Attach doc/file |
โ๏ธ :airplane:
|
Migrate to new interface Create data migration |
๐ :checkered_flag:
|
Finish impl Meet roadmap checkpoint |
๐ญ :performing_arts:
|
Merge branches Merge two modules |
โ๏ธ :anchor:
|
Put TODO anchors |
๐ฉ :triangular_flag_on_post:
|
Meet roadmap checkpoint |
ยฉ๏ธ :copyright: ยฎ๏ธ :registered:
|
Add LICENSE file Update LICENSE |
Emojis by context
Of course knowing various emojis like the list above helps a lot, but more often that not I find myself trying to recall an emoji that fits best with my already written (or thought of) commit message. Not always would you find the closest emoji within a list like the one you've seen. That's when you'd rather have a subject-/context-oriented table in which you could easily find the best candidates for your intent. I'm talking about such a table:
Emojis | Context (verb/noun/adjective) |
---|---|
๐:bug: ๐จ :hammer: ๐ง :wrench: ๐ :clamp: |
correct fix bugfix |
๐:shell: ๐ :open_hands: ๐ฆ :package: ๐ :gift: ๐ณ :ballot_box: ๐ :card_file_box: ๐ฅ :inbox_tray: ๐ค :outbox_tray: |
wrap hold cover shell safe box contain |
๐ญ:performing_arts: ๐ค :handshake: ๐ :clamp: ๐ :paperclip: ๐ :paperclips: ๐ :link: ๐ :twisted_rightwards_arrows: ๐ :arrows_clockwise: ๐ :arrows_counterclockwise: ๐ฅ :busts_in_silhouette: |
merge mix attach convolve append prepend unify combine distill handshake |
๐ฅ:fire: ๐ซ :gun: ๐ฃ :bomb: ๐ :wastebasket: ๐ฎ :put_litter_in_its_place: โฐ๏ธ :coffin: โ ๏ธ :skull_and_crossbones: ๐ :skull: โ๏ธ :latin_cross: โ :x: โ :negative_squared_cross_mark: โ๏ธ :heavy_multiplication_x: ๐ค :outbox_tray: โ๏ธ :scissors: ๐ช :knife: โ๏ธ :crossed_swords: ๐ :card_file_box: ๐ :file_cabinet: |
remove delete drop cancel exclude archive |
๐ถ:signal_strength: ๐ :chart_with_upwards_trend: ๐ :chart_with_downwards_trend: โ๏ธ :arrow_up_down: โฌ๏ธ :arrow_up: โฌ๏ธ :arrow_down: ๐ฝ :plate_with_cutlery: ๐ข :1234: |
order sort arrange reorder |
๐จ:hammer: ๐ง :wrench: ๐ :medal_military: โจ :sparkles: ๐ฅ :1st_place_medal: ๐จ :art: ๐ :paintbrush: ๐ :lipstick: ๐ :nail_care: ๐ :high_heel: ๐ :rainbow: ๐ฆ :bird: |
improve enhance upgrade refresh beauty embellish cosmetics |
๐:syringe: ๐จ :hammer: ๐ง :wrench: โ๏ธ :heavy_check_mark: โ :white_check_mark: โ๏ธ :ballot_box_with_check: ๐ :pen: |
apply set put commit register confirm |
โ:heavy_plus_sign: ๐ :paperclip: ๐ :paperclips: ๐ฆ :package: ๐ :gift: ๐ :checkered_flag: โฌ๏ธ :arrow_up: ๐ฑ :seedling: โซ :arrow_double_up: ๐ฅ :inbox_tray: ๐ถ :baby: ๐ค :baby_chick: ๐ผ :baby_symbol: ๐ :new: ๐ผ :blossom: โจ :sparkles: โ๏ธ :sparkle: ๐ :electric_plug: |
add insert update upgrade increase register append prepend feature |
๐:shirt: / :tshirt: ๐ :medal_military: ๐ :straight_ruler: ๐ :triangular_ruler: ๐ฟ :shower: ๐ :pill: ๐จ :art: ๐ :paintbrush: ๐ :lipstick: ๐ :nail_care: ๐ :high_heel: ๐ :rainbow: |
lint clean format style refactor |
๐:building_construction: ๐จ :hammer: ๐ง :wrench: ๐ :hammer_and_wrench: โป๏ธ :recycle: |
refactor rewrite reestablish reimplement rethink recycle |
โ๏ธ:alembic: โฑ :stopwatch: ๐ :mag: ๐ :mag_right: ๐ต :detective: ๐ญ :telescope: ๐ฌ :microscope: ๐ :clamp: |
test assess exam check review rethink supervise fixture |
โ๏ธ:envelope: ๐ค :outbox_tray: ๐ก :satellite: ๐ :rocket: โ๏ธ :airplane: ๐ฉ :small_airplane: ๐ :helicopter: ๐น :bow_and_arrow: ๐ฐ :newspaper: ๐ :newspaper_roll: ๐บ :tv: ๐ป :radio: ๐ค :microphone: ๐ข :loudspeaker: ๐ :speaker: |
send move out publish transform give produce |
โ:question: โ :grey_question: ๐ด :fork_and_knife: ๐ฅ :inbox_tray: |
ask request inquiry query fetch receive take |
๐:ear: ๐ง :headphone: โณ :hourglass_flowing_sand: โธ :pause_button: ๐จ :incoming_envelope: โ๏ธ :envelope: โ๏ธ :phone: ๐ฒ :calling: |
consume listen subscribe register await callback standby |
โฑ:stopwatch: โฒ :timer: โฐ :alarm_clock: ๐ :calendar: ๐ :spiral_calendar: ๐ :runner: |
job cron schedule time period repeat repetitive |
๐:mag: ๐ :mag_right: ๐ฆ :flashlight: ๐ต :detective: ๐ญ :telescope: ๐ฌ :microscope: ๐ถ :dog: ๐ :dog2: ๐ :nose: |
search find lookup browse query select |
โฌ๏ธ:arrow_down: โฌ :arrow_double_down: โคต๏ธ :arrow_heading_down: ๐ :thumbsdown: |
rollback downgrade reset repopulate revert undo |
๐:scroll: ๐ :pencil: โ๏ธ :writing_hand: ๐ฐ :newspaper: ๐ :newspaper_roll: ๐ :clipboard: ๐ :book: ๐ :bookmark_tabs: ๐ :books: ๐ :blue_book: ๐ :orange_book: ๐ :notebook: ๐ :pen: โ๏ธ :pencil2: ๐จ :printer: ๐ :fax: ๐ฌ :speech_balloon: |
log record store draft note text README guide manual comment |
โ ๏ธ:warning: โ :hand: โ๏ธ :heavy_exclamation_mark: โ๏ธ :exclamation: โ :grey_exclamation: |
avoid prevent caution safe look out beware notice warning |
๐:stop_sign: โฃ๏ธ :biohazard: ๐ :skull: โ ๏ธ :skull_and_crossbones: ๐ฅ :fire: โน :stop_button: โฐ๏ธ :coffin: โ๏ธ :latin_cross: โ๏ธ :heavy_multiplication_x: |
error exception hazard danger stop crash abort deadlock |
๐จ:man: ๐ฉ :woman: |
user human operator |
๐บ :tv: ๐ฑ :iphone: ๐ผ :framed_picture: ๐ :paintbrush: โ๏ธ :black_nib: ๐จ :art: ๐ :rainbow: |
UI UX HTML CSS front-end view face canvas image picture |
โธ๏ธ:wheel_of_dharma: โ๏ธ :gear: ๐ :control_knobs: ๐ :hammer_and_wrench: โ :hammer_and_pick: ๐จ :hammer: ๐ง :wrench: ๐ :clamp: ๐ข :1234: ๐ก :abcd: ๐ :capital_abcd: |
config setup parameter argument reference fixture |
๐คก:clown: ๐ :womans_hat: ๐ญ :performing_arts: ๐ฌ :clapper: ๐ :new_moon_with_face: ๐ถ :dark_sunglasses: ๐ :carousel_horse: ๐ผ :baby_bottle: ๐ถ :baby: ๐ค :baby_chick: ๐ผ :baby_symbol: |
mock fake stub test assess impersonate improvise simulate emulate behave |
๐:key: ๐ :old_key: ๐ท :label: ๐ :link: ๐ถ :baby: ๐ค :baby_chick: ๐ผ :briefcase: ๐ :file_folder: ๐ :open_file_folder: |
variable field property key item element |
๐:runner: ๐ด :bicyclist: ๐ต :mountain_bicyclist: ๐คธโโ :man_cartwheeling: ๐คธโโ :woman_cartwheeling: ๐ฌ :clapper: ๐ข :loudspeaker: ๐ :speaker: ๐ :car: ๐ :rocket: โ๏ธ :airplane: ๐ฉ :small_airplane: ๐จโ๐ญ :man_factory_worker: ๐ฉโ๐ญ :woman_factory_worker: |
method function behavior action paly execute run |
๐:stop_sign: โ๏ธ :no_entry: ๐ซ :no_entry_sign: ๐ท :no_pedestrians: ๐ณ :no_bicycles: ๐ฑ :non-potable_water: ๐ก :shield: โ ๏ธ :warning: โ๏ธ :heavy_multiplication_x: โ :hand: โน :stop_button: ๐ฐ :european_castle: ๐จ :rotating_light: ๐ :police_car: ๐ฎ :policeman: ๐ฎโโ :policewoman: ๐ :oncoming_police_car: โ๏ธ :heavy_exclamation_mark: ๐จโโ :man_judge: ๐ฉโโ :woman_judge: ๐ฝ :alien: |
limit bound line threshold ceiling floor restrict constrain restrain |
๐:spiral_notepad: ๐ :notebook: ๐ :ruler: ๐ :triangular_ruler: ๐ค :outbox_tray: ๐ฆ :package: ๐ :mag: ๐ :mag_right: ๐ต :detective: ๐ข :1234: ๐ก :abcd: ๐ :capital_abcd: ๐ :open_file_folder: ๐ :shell: ๐ฐ :potable_water: ๐ฅ :desktop_computer: ๐จโ๐ซ :man_teacher: ๐ฉโ๐ซ :woman_teacher: |
detail info data body content |
๐ฆ:package: ๐ฅ :inbox_tray: ๐ :syringe: ๐พ :floppy_disk: ๐ฟ :cd: โจ๏ธ :keyboard: ๐ :key: ๐ :old_key: ๐ :closed_lock_with_key: ๐ :lock_with_ink_pen: ๐ :lock: ๐ฆ :bank: โ๏ธ :writing_hand: ๐ :clipboard: ๐ :notebook: ๐ :spiral_notepad: ๐ :pencil: ๐ :pen: โ๏ธ :pencil2: ๐จ :printer: ๐ :fax: ๐ :film_strip: |
store persist save keep serialize write buffer memory |
๐ค:outbox_tray: ๐ :eyeglasses: ๐ :ear: ๐ :key: ๐ :old_key: |
load fetch read deserialize query |
๐:lock: ๐ :closed_lock_with_key: ๐ :lock_with_ink_pen: ๐ก :shield: ๐ :guardsman: ๐โโ :guardswoman: |
security ACL shield protect antivirus guard encrypt scramble hash sign clutter secure code hide conceal secret lock restrict cover |
๐:key: ๐ :open_file_folder: ๐ :open_book: ๐ฆ :flashlight: ๐บ :tv: ๐ฐ :newspaper: ๐ :speaker: ๐ข :loudspeaker: ๐ :free: |
decrypt unscramble decode show open reveal unveil unleash uncover release free authentication authorization |
๐:globe_with_meridians: ๐บ :world_map: ๐ :earth_africa: ๐ :earth_americas: ๐ :earth_asia: ๐ธ :spider_web: ๐ :cityscape: ๐ฃ :post_office: ๐ฎ :postbox: |
URL URI path address location access route identifier |
๐ผ:framed_picture: ๐บ :tv: ๐ฅ :desktop_computer: ๐ฝ :film_projector: ๐ฆ :cinema: ๐จ :printer: ๐ :ruler: ๐ :triangular_ruler: ๐ :pen: โ๏ธ :pencil2: ๐จ :art: ๐ :paintbrush: |
show display visible illustrate demonstrate paint draw |
โ๏ธ:scissors: ๐ :horse_racing: ๐ :racehorse: ๐ :monkey: ๐ :racing_car: |
skip ignore neglect jump overlook unfollow forget |
โคด๏ธ:arrow_heading_up: โป๏ธ :recycle: ๐ :arrows_clockwise: ๐ :arrows_counterclockwise: ๐ :repeat: ๐ :repeat_one: โฎ :previous_track_button: ๐ :building_construction: ๐ก :ferris_wheel: |
retry restart reboot rerun restablish reattempt reconstruct reimplement refactor |
๐:runner: ๐ :car: ๐ :racing_car: ๐ :bullettrain_front: ๐ :light_rail: โ๏ธ :airplane: ๐ :rocket: ๐ซ :flight_departure: ๐ฉ :cloud_with_lightning: โ๏ธ :open_umbrella: โ๏ธ :umbrella: ๐ :racehorse: ๐ :horse_racing: ๐ฅ :boom: ๐ :volcano: ๐ :sunrise: โฏ :play_or_pause_button: ๐ :building_construction: |
run execute boot establish try attempt apply drive move start begin ON launch construct implement init initialize |
โน:stop_button: โธ :pause_button: ๐ :stop_sign: โ :hand: โ๏ธ :heavy_exclamation_mark: ๐ :skull: โ ๏ธ :skull_and_crossbones: ๐ฌ :flight_arrival: ๐ :checkered_flag: โ๏ธ :heavy_multiplication_x: โ :negative_squared_cross_mark: ๐ด :mobile_phone_off: ๐ซ :gun: โฐ๏ธ :coffin: โ๏ธ :latin_cross: ๐ฃ :bomb: |
stop end pause abort OFF out wait hold holdup suspend suppress silence silent kill interrupt destruct dispose |
๐:school_satchel: ๐ :rocket: โ๏ธ :airplane: โฌ๏ธ :arrow_up: โซ :arrow_double_up: ๐ผ :arrow_up_small: ๐ :up: ๐ข :loudspeaker: ๐ :speaker: ๐ฏ :postal_horn: ๐ :balloon: ๐ :confetti_ball: ๐ :tada: ๐ฐ :newspaper: ๐ :newspaper_roll: ๐ก :satellite: ๐ฐ :artificial_satellite: |
deploy install setup launch |
๐:point_left: ๐ :point_right: โ๏ธ :point_up: ๐ :point_down: ๐ฃ :footprints: ๐พ :paw_prints: โคต๏ธ :arrow_heading_down: โคด๏ธ :arrow_heading_up: โช๏ธ :arrow_right_hook: โฉ๏ธ :leftwards_arrow_with_hook: ๐ :twisted_rightwards_arrows: โฒ๏ธ :fountain: โป๏ธ :recycle: ๐ :repeat: ๐ :repeat_one: ๐ฑ :currency_exchange: |
redirect transform change direct guide align |
0๏ธโฃ:zero: โค๏ธ :heart: ๐ :heart_decoration: ๐ :sunrise_over_mountains: โ๏ธ :sunny: ๐ฑ :seedling: ๐พ :ear_of_rice: ๐ป :computer: ๐ :house: ๐ก :house_with_garden: ๐ฆ :butterfly: โ๏ธ :gear: ๐ฏ :candle: ๐ผ :blossom: ๐ :fish: ๐ :place_of_worship: โช๏ธ :church: ๐ :mosque: |
base ground floor core center middle heart root home origin |
๐:skull: โ ๏ธ :skull_and_crossbones: โฃ๏ธ :hazard: โฃ๏ธ :biohazard: ๐ณ :hole: ๐ซ :gun: ๐ :volcano: ๐ฅ :boom: ๐ :snake: ๐ธ :money_with_wings: ๐ค :fight: ๐คผโโ :men_wrestling: ๐คผโโ :women_wrestling: ๐ฅ :boxing_glove: ๐ฅ :hospital: ๐ :ambulance: |
trespass breach vulnerability access hole penetrate spy listen hack compromise reveal |
๐ฆ:package: ๐ :card_file_box: ๐ :file_cabinet: ๐ :electric_plug: ๐ฒ :black_square_button: ๐ณ :white_square_button: โฌ๏ธ :white_large_square: โฌ๏ธ :black_large_square: ๐ฏ :honey_pot: ๐จ :hammer: ๐ :hammer_and_wrench: ๐ง :wrench: ๐ป :computer: ๐ฝ :minidisc: ๐ :paperclip: ๐ :paperclips: |
package dependency module library component plugin add-in plug object container image |
๐rainbow: ๐ฅ:pancakes: ๐ :burger: ๐ญ :hotdog: ๐ :pushpin: ๐ :round_pushpin: ๐คนโโ :man_juggling: ๐คนโโ :woman_juggling: |
middleware intermediate middleman dealer layer |
๐ธ:spider_web: ๐ถ :signal_strength: ๐ :bar_chart: ๐ :file_folder: ๐ :open_file_folder: ๐ณ :tree: ๐ :leaf: |
structure organize format tree leaf edge graph net network |
โ๏ธ:open_umbrella: โ๏ธ :umbrella: ๐ :camping: โ๏ธ :crossed_swords: ๐บ :world_map: ๐ :globe_with_meridians: |
cover range shadow area support resolve |
โป๏ธ:recycle: ๐ :repeat: ๐ :repeat_one: ๐ :arrows_clockwise: ๐ :arrows_counterclockwise: ๐ข :1234: ๐ก :abcd: ๐ :capital_abcd: |
loop while for do loopback repeat repetition iterate enumerate |
๐ง:construction: ๐จ :rotating_light: โ ๏ธ :warning: โ๏ธ :hourglass: โณ :hourglass_flowing_sand: โฒ :timer_clock: โฑ :stopwatch: ๐ฆ :vertical_traffic_light: ๐ฅ :traffic_light: |
temporary work in progress WIP pend wait suspend block hinder |
Look further
See emoji cheat sheet for a complete list of emojis that you can use on GitHub or other platforms.
Posted on July 18, 2020
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.