Git-Emoji: 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. Like the screen capture below, you can simply pick the best emojis based on the context of your commit message. You can install it from within VS Code or via extensions marketplace. You can also see this short blog post on this new extension.
🎉 UPDATE 3: You can see the old exhaustive list of contextual emojis in this new post.
What is Git-Emoji?
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.
That’s all why I started the Git-Emoji project to promote application of emojis in software development process. As a basic must, the project aims to provide you with basic tools that developers might need to embrace the beauty of emojis in their daily experience. But it’s not as simple as a list of emojis, there’s still more to select a perfect matching emoji.
The problem with emojis
As a big fan, I use emojis 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 part of the features that project Git-Emoji will bring for you, named emojis by context.
Emojis by context (ContextV2
dataset)
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. If you’re using VS Code, you can simply install the Git-Emoji extension and receive context-related emoji suggestions. But don’t worry if you’re using a different IDE/editor, or you don’t want to install an extension, because here’s an example of such a list/table:
⚠️ This is the new version of the old exhaustive table.
Emojis | Context (verb/noun/adjective) |
---|---|
🐞 :beetle: 🐛 :bug: |
bogus bug bugfix |
🔨 :hammer: ⚒ :hammer_and_pick: 🛠 :hammer_and_wrench: 🔧 :wrench: |
amend construct correct establish fix implement patch re-establish re-factor re-implement re-stablish reestablish refactor reimplement repair restablish rewrite rewriting |
⛔️ :no_entry: 🚫 :no_entry_sign: |
erroneous faulty foul incorrect wrong |
🗃 :card_file_box: 📦 :package: |
archive archiving box contain container dependencies dependency dependent library package packaging |
🗳 :ballot_box: 🗃 :card_file_box: 🎁 :gift: 📥 :inbox_tray: 👐 :open_hands: 📤 :outbox_tray: 📦 :package: 🐚 :shell: |
cover held hold safe shell wrap |
📎 :paperclip: 🖇 :paperclips: |
attach |
👥 :busts_in_silhouette: 🎭 :performing_arts: |
combination combine combining convolve convolving distill merge merging mix |
🥂 :clinking_glasses: 🤝 :handshake: |
handshake handshaking intro introduce introducing introduction unification unify unite uniting |
➕ :heavy_plus_sign: 🪡 :sewing_needle: |
add append insert postfix prefix prepend suffix |
💣 :bomb: 🔥 :fire: 🗑 :wastebasket: |
delete deleting deletion drop removal remove removing trash |
🗄 :file_cabinet: |
archive archiving seal |
✖️ :heavy_multiplication_x: ❎ :negative_squared_cross_mark: ❌ :x: |
cancel close closing disable disabling |
✋ :hand: 🛑 :stop_sign: |
deprecate deprecating deprecation |
📤 :outbox_tray: ✂️ :scissors: |
away exclude excluding exclusion |
🔢 :1234: 📶 :signal_strength: |
arrange arranging order re-arrange re-arranging rearrange rearranging reorder sort |
📜 :scroll: |
array list queue queueing stack |
🎨 :art: 💄 :lipstick: 💅 :nail_care: |
beautification beautiful beautify beauty cosmetics embellish format pretties prettification prettify pretty |
✨ :sparkles: |
enhance enhancing improve improving polish |
⏫ :arrow_double_up: |
update updating upgrade upgrading |
⏬ :arrow_double_down: |
degradation degrade degrading downgradation downgrade downgrading |
🔃 :arrows_clockwise: 🔄 :arrows_counterclockwise: |
refresh |
👓 :eyeglasses: |
readability readable |
📝 :pencil: |
register |
☑️ :ballot_box_with_check: ✔️ :heavy_check_mark: ✅ :white_check_mark: |
confirm conform validate validating validation validator verification verifier verifies verify |
🔨 :hammer: 🖊 :pen: 💉 :syringe: 🔧 :wrench: |
applied apply commit put set |
👶 :baby: 🐤 :baby_chick: |
immature initial pre-mature premature |
🎁 :gift: 🆕 :new: 🌱 :seedling: |
feature featuring fresh new |
⬆️ :arrow_up: ➕ :heavy_plus_sign: |
bump increase increasing increment up |
⬇️ :arrow_down: ➖ :heavy_minus_sign: |
decrease decreasing decrement down |
🏷 :label: |
revision version |
↔️ :left_right_arrow: 🎭 :performing_arts: |
alternate alternating alternation alternative switch |
💡 :bulb: 🌞 :sun_with_face: |
awake awaking awoke day daylight enable enabling light on wake waking woke |
🌙 :crescent_moon: 💤 :zzz: |
dark disable disabling night off sleep |
👕 :shirt: 👕 :tshirt: |
lint style styling |
🚿 :shower: |
clean |
♻️ :recycle: |
recycle recycling |
🕵 :detective: 🔍 :mag: 🔎 :mag_right: |
assess rethink retro retrospect |
🗜 :clamp: |
fixture fixturing |
⚗️ :alembic: |
test |
🔍 :mag: 🔎 :mag_right: 🔬 :microscope: |
browse browsing check exam find found look up look-up lookup query review search select supervise supervising supervision |
📏 :ruler: 📐 :triangular_ruler: |
align measure measuring meter metre transform |
✈️ :airplane: 🚁 :helicopter: 🛩 :small_airplane: |
move moving send sent transport |
🚀 :rocket: |
deploy install launch publish set-up setup |
📻 :radio: 📡 :satellite: 📺 :tv: |
broadcast produce producing production |
✉️ :envelope: |
email |
❔ :grey_question: ❓ :question: |
ask inquiry query question request |
📥 :inbox_tray: |
fetch inbound receive receiving take taking took |
👂 :ear: |
call back call-back callback consume consuming consumption listen subscribe subscribing |
⏳ :hourglass_flowing_sand: ⏸ :pause_button: |
await stand-by standby |
⏰ :alarm_clock: ⏱ :stopwatch: ⏲ :timer: |
cron job time timing |
📆 :calendar: 🗓 :spiral_calendar: |
calendar date period repeat repetition repetitive schedule scheduling |
↩️ :leftwards_arrow_with_hook: |
reset revert roll back roll-back rollback undo |
↪️ :arrow_right_hook: |
redo |
📘 :blue_book: 📚 :books: 📙 :orange_book: |
book doc document guide guiding manual read me read-me readme reference referencing |
📝 :pencil: ✍️ :writing_hand: |
comment draft notation note noting text |
📜 :scroll: |
log record |
❗️ :exclamation: ❕ :grey_exclamation: ❗️ :heavy_exclamation_mark: ⚠️ :warning: |
beware bewaring caution look out look-out lookout notice noticing warn warning |
✋ :hand: |
avoid prevent safe |
💀 :skull: 🛑 :stop_sign: |
abort crash dead lock dead-lock deadlock error exception hang kill stop |
☣️ :biohazard: ☠️ :skull_and_crossbones: |
danger hazard |
👨 :man: 👩 :woman: |
human operator user |
👦 :boy: 👨 :man: 👴 :older_man: |
boy male man |
👧 :girl: 👵 :older_woman: 👩 :woman: |
female girl woman |
🖼 :framed_picture: |
canvas css front end front-end frontend html image imaging picture ui user experience user interface user-experience user-interface ux view |
⚙️ :gear: |
config option parameter set-up setting setup |
🤡 :clown: 🎭 :performing_arts: |
emulate emulating emulation fake faking impersonate impersonating impersonation improvisation improvise improvising mock simulate simulating simulation stub |
🕵 :detective: |
inspect investigate investigating investigation investigator spies spy |
🔑 :key: 🗝 :old_key: |
field key properties property |
🏃 :runner: |
action execute executing execution play ran run start |
🤸♂ :man_cartwheeling: 🤸♀ :woman_cartwheeling: |
behavior behaviour function method |
✋ :hand: ❗️ :heavy_exclamation_mark: |
bound boundaries boundary ceiling constrain floor limit restrain restrict threshold |
🗒 :spiral_notepad: |
body content detail |
📚 :books: |
info information |
💻 :computer: |
data |
💾 :floppy_disk: |
buffer memorization memorize memory persist save saving serialization serialize serializing storage store storing write writing |
📤 :outbox_tray: |
deserialization deserialize deserializing load read |
🔐 :closed_lock_with_key: 🛡 :shield: |
acl anti virus anti-virus antivirus conceal encode encoding encrypt guard hash hid hidden hide hiding lock protect restrict scramble scrambling secret secure securing security shield sign |
👮 :policeman: 👮♀ :policewoman: |
authenticate authenticating authentication authorization authorize authorizing |
📂 :open_file_folder: |
open |
🔓 :unlock: |
decode decoding decrypt release releasing reveal un-cover uncover unleash unscramble unscrambling unveil |
🔑 :key: |
access |
🌍 :earth_africa: 🗺 :world_map: |
address identifier location path route routing uri url |
🎨 :art: 🖼 :framed_picture: |
demonstrate demonstrating demonstration draw drew illustrate illustrating illustration paint |
📽 :film_projector: 📺 :tv: |
display show visibilities visibility visible |
🖨 :printer: |
|
✂️ :scissors: |
ignore ignoring jump skip un-follow unfollow |
🗑 :wastebasket: |
forget forgot neglect over look over-look overlook |
🔃 :arrows_clockwise: 🔄 :arrows_counterclockwise: |
re-attempt re-boot re-run re-start reattempt reboot reconnect reconstruct repeat rerun restart retried retry |
⏯ :play_or_pause_button: |
attempt began begin begun boot init initialization initialize initializing launch ran run start trial tried try |
⏸ :pause_button: |
held hold hold up hold-up holdup interrupt pause pausing suspend suspension wait |
✋ :hand: ⏹ :stop_button: |
abort end kill stop |
💣 :bomb: |
destroy destruct destruction dispose disposing disposition |
🎧 :headphone: |
silence silencing silent suppress |
🚩 :triangular_flag_on_post: |
direct guide guiding instruct landmark navigate navigating navigation navigator redirect |
🏠 :house: |
base home origin root |
🧠 :brain: |
brain center centre core |
❤️ :heart: |
heart middle middling |
☣️ :biohazard: ☠️ :skull_and_crossbones: |
breach compromise compromising hack hole penetrate penetrating penetration trespass vulnerabilities vulnerability |
🧩 :jigsaw: |
add in add-in addin component modular modulation module plug in plug-in plugin |
💿 :cd: |
disc image imaging |
🤹♂ :man_juggling: 🤹♀ :woman_juggling: |
dealer intermediate intermediating intermediation middle man middle ware middle-man middle-ware middleman middleware |
🕸 :spider_web: |
graph net network radial |
🌳 :tree: |
tree |
🍃 :leaf: |
edge leaf leaves |
🏗 :building_construction: |
construct structural structure structuring |
🗺 :world_map: |
area range ranging |
☔️ :umbrella: |
cover shadow support |
🔁 :repeat: |
enumerate enumerating enumeration for iterate iterating iteration loop loop back loop-back loopback repeat repetition repetitive while whilst |
🚧 :construction: ⏳ :hourglass_flowing_sand: |
block hinder pend wip work in progress work-in-progress workinprogress |
There’s more
Project Git-Emoji is not just about a list of emojis to pick, there’s also an open-source dataset available for anyone would need it in anyway. Also, more tools are yet to come in the near future.
ℹ️ If you couldn’t find the emoji you were looking for, you can always consult with the emoji cheat sheet for a complete list of emojis that you can use on GitHub or other platforms.