DEV Community

Babak K. Shandiz
Babak K. Shandiz

Posted on • Updated on • Originally published at babakks.github.io

Emojis for Better Git Commit Messages

๐ŸŽ‰ 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
print
โœ‚๏ธ: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.

Top comments (22)

Collapse
 
gv_rene profile image
Renรฉ Gonzรกlez

I like using emojis on my commit names, but sadly our CI tool use the commit hash + commit name as identifier and it has some issues using commit names that contain emojis :(.
Well at least I can still put emojis on commit comments.

Collapse
 
klyse profile image
klyse

have a look at this website: gitmoji.carloscuesta.me/

Collapse
 
babakks profile image
Babak K. Shandiz • Edited

I've come across gitmoji a few times now and then. Recently, I've also suggested a feature for some kind of contextual emoji search (like the second table in the article,) in the gitmoji-cli repo:
github.com/carloscuesta/gitmoji-cl...

Feel free to endorse the issue, if you think that'll help users, or comment your ideas below that thread. ๐Ÿ˜Š

Collapse
 
sirawit profile image
Dragodzs
Collapse
 
babakks profile image
Babak K. Shandiz

I've come across gitmoji a few times now and then. Recently, I've also suggested a feature for some kind of contextual emoji search (like the second table in the article,) in the gitmoji-cli repo:
github.com/carloscuesta/gitmoji-cl...

Feel free to endorse the issue, if you think that'll help users, or comment your ideas below that thread. ๐Ÿ˜Š

Collapse
 
goodevilgenius profile image
Dan Jones

I can't endorse gitmoji-cli enough. I think it's super convenient. I just do git commit, and gitmoji-cli automatically (using a git hook) gives me an interactive prompt to choose the best emoji.

It's quick and easy and I don't have to think much about which emoji to use.

Collapse
 
sirawit profile image
Dragodzs

It's a good article I wait for use with gitmoji-cli. I love emoji ๐Ÿ˜„

Collapse
 
riidom profile image
riidom

That's a great list to narrow down the choices, thanks for that. I think, emojis can be well used as a graphical way of tagging or categorizing. Not as replacement for github labels, but rather start the commit message with a single emoji to give an idea what it is about.

This way you could sort raw release logs which consist only of commit messages by text and have everything grouped that belongs together.

But I have to see this done in wild to know if it actually works :) I just had some ideas about it while reading your post.

Collapse
 
babakks profile image
Babak K. Shandiz

Thank you. I'm totally agree with prefixing emojis in commit messages. I, myself, use emojis and the beginning of issue/pull requests, too.

Collapse
 
serkzex profile image
Mujtaba Aldebes

That's a cool post! But since there are no general standardization for the usage of these emojis each team/project will determine their own definition/meaning. That will eventuate in one emoji having different meaning cross projects.

Collapse
 
babakks profile image
Babak K. Shandiz

That is true. Although, in widespread use, especially on open source projects, community-based standards could emerge.

Collapse
 
cybermischa profile image
Mischa Spiegelmock

The plural of emoji is 'emoji'

Collapse
 
babakks profile image
Babak K. Shandiz

No. I now checked with Google.
Google

Collapse
 
cybermischa profile image
Mischa Spiegelmock

I guess it's complicated theatlantic.com/technology/archive...

Collapse
 
spiritupbro profile image
spiritupbro

this is cool usually i use gitmoji i dont know someone really put an effort to create a gitmoji like this good work pal

Collapse
 
babakks profile image
Babak K. Shandiz

You're welcome.

Collapse
 
patarapolw profile image
Pacharapol Withayasakpunt

I use commitizen to help insert emoji in every commit. (cz-emoji, actually)

Otherwise, I think it is better to use a good emoji IME, and insert the actual emoji, instead of the text.

Collapse
 
babakks profile image
Babak K. Shandiz

I agree. The :emoji: notation gets in the way when you want to, for example, see the git logs in a terminal.

Collapse
 
mxldevs profile image
MxL Devs

Too bad there's no upside-down smiley. I would put that in every message ๐Ÿ™ƒ

Collapse
 
babakks profile image
Babak K. Shandiz • Edited

For me, 4 out of every 5 commit messages begin with the hammer emoji, i.e., ๐Ÿ”จ. So, you can use your own fav. ๐Ÿ˜‰

Collapse
 
limusina10 profile image
limusina10

Nice post!

Collapse
 
babakks profile image
Babak K. Shandiz

Thanks. ๐Ÿ˜Š