GithubHelp home page GithubHelp logo

emoji-commit-messages's Introduction

Emoji commit messages

A fun paradigm to encourage cleaner commits.

Motivation

Images (including emoji) help clarify what a given commit accomplishes, make your commit history easier to scan though, and encourage you to limit each of your changes to a single type of action. This makes it easier to reason about the history of your code.

For example, instead of having one massive commit that adds a feature, refactors an old related feature, fixes a typo, and fixes a bug, you could split that change into four commits that each accomplish one specific thing. Not only does this make things cleaner and clearer, but it also helps when using tools like git bisect to track down bugs, as well as when reverting individual changes.

The list

Fork and modify to suit your needs. Don't forget to "star" and share the love.

Text Image GFM shortcode* Windows 10 picker name When to use it
๐ŸŽ‰ ๐ŸŽ‰ :tada: party popper initial commit
โœจ โœจ :sparkles: sparkles when adding a new user-facing feature
๐ŸŽจ ๐ŸŽจ :art: artist palette when improving UI
๐Ÿ“ฆ ๐Ÿ“ฆ :package: package when refactoring or improving code
๐ŸŽ ๐ŸŽ :racehorse: horse when improving performance
๐Ÿ”’ ๐Ÿ”’ :lock: locked when improving security
๐Ÿ”ง ๐Ÿ”ง :wrench: wrench when updating configs
โ™ฟ โ™ฟ :wheelchair: wheelchair symbol when improving accessibility
๐Ÿš€ ๐Ÿš€ :rocket: rocket when improving dev tools
๐Ÿ“ ๐Ÿ“ :pencil: pencil when writing docs (e.g. README, code comments)
๐Ÿ’Ž ๐Ÿ’Ž :gem: gem stone when cutting a new release / version bump
๐Ÿ› ๐Ÿ› :bug: bug when fixing a bug
๐Ÿ’ฅ ๐Ÿ’ฅ :boom: collision when fixing a crash
๐Ÿšฑ ๐Ÿšฑ :non-potable_water: non-potable water when fixing a memory leak
๐Ÿ”ฅ ๐Ÿ”ฅ :fire: fire when removing code or files
โœ… โœ… :white_check_mark: check mark button when adding new tests
๐Ÿ’š ๐Ÿ’š :green_heart: green heart when fixing the CI build
๐Ÿ‘• ๐Ÿ‘• :shirt: t-shirt when fixing linter warnings
๐Ÿ“ก ๐Ÿ“ก :satellite: satellite antenna when adding instrumentation or metrics
๐Ÿ”Š ๐Ÿ”Š :loud_sound: speaker high volume when adding logging
๐Ÿ”‡ ๐Ÿ”‡ :mute: muted speaker when removing logging
โฌ† โฌ†๏ธ :arrow_up: up arrow when upgrading dependencies
โฌ‡ โฌ‡๏ธ :arrow_down: down arrow when downgrading dependencies
๐ŸŽŒ ๐ŸŽŒ :crossed_flags: crossed flags when adding an A/B test or feature flag**
โšก โšก :zap: high voltage when making a backwards-incompatible change**
๐Ÿšง ๐Ÿšง :construction: construction when the change is a work in progress (do not merge)**

* GFM shortcodes are recognized by any software that uses GitHub Flavored Markdown. You can type them directly in your commit message!

** These emoji are often combined with another, primary emoji.

How to decide which emoji to use

In most cases, your change will fit into a pretty obvious emoji category. If it doesn't, you should think hard about whether or not you're making a clean change.

Often you can break up changes into two or more commits that each accomplish their own specific type of action. If that means you only change one tiny line or fix a simple typo in a commit, so be it! It should be a no-brainer that any given commit does exactly what it says it does โ€” and only what is says it does. No side-effects.

In general, you should use exactly one emoji per commit message. In rare cases, you should use a second emoji (e.g. when using something like โšก to signify that whatever you just did โ€” ๐Ÿ›, ๐Ÿ”ฅ, etc. โ€” was a breaking change).

Emoji will also depend on your client/user. A back-end API might use โœจ when adding new API endpoints, and the front-end app might use โœจ when using those endpoints to display new content.

How to type emoji on your computer

I find it faster to type the raw emoji shortcode with colons (GitHub and GitLab both recognize this), but sometimes it's easier to search through the actual icons, especially as you're starting out.

  • On Mac OS X, you can open the built-in emoji picker with the hotkey Ctrl + Cmd + Space.

  • On Ubuntu 14+, you can use the Emojione Picker app:

    sudo add-apt-repository ppa:ys/emojione-picker && sudo apt update
    sudo apt install emojione-picker
  • On Windows 10 update 1709, pressing Win+. while having keyboard focus in a text field in any program will bring up the built-in emoji picker, similarly to Mac OS. The table above includes names which work specifically in this emoji picker, but the GFM shortcodes work too. Some of the Windows-specific ones can be easier to remember, though.

    On lower versions of Windows, starting with Windows 8, you can use the on-screen keyboard in the system tray. Alternatively, you can use BabelMap which is a Unicode character picker for even lower versions of Windows. It also might be more convenient than the Windows 8 on-screen keyboard.

If all else fails, you can search for an emoji at http://emojipedia.org/ and simply copy/paste.

Real examples

The following is a brief list of open-source projects currently using these emoji:

Credits

Developed along with my co-workers at Cribspot. Inspired in part by style guides from slashsBin and atom.

emoji-commit-messages's People

Contributors

cooperka avatar kotauskas avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

emoji-commit-messages's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.