Giter Site home page Giter Site logo

slurmulon / tasty-commits Goto Github PK

View Code? Open in Web Editor NEW
21.0 4.0 2.0 34 KB

:lollipop: Simple commit message convention for easily digestible history streams

License: MIT License

commit message visualize review summary gist conventions emoji scenario calendar

tasty-commits's Introduction

tasty-commits

๐Ÿญ Simple commit message convention for easily digestible history streams


As a visual person, I find it difficult to read through large commit history logs in binary color schemes (i.e. black / white).

In order to improve readability and understandability of my commit history I started prefixing my messages with emojis in a consistent manner.

Over the years I've made this convention a habit and find it hard to live without, so I figured I'd document the idea to see if others find it useful, too.

Convention

Following the message rules described in the following section, simply prefix your commit messages like so:

:EMOJI: my commit message

That's it. Now when you read through your commit history it will be much easier to identify the general flow of your work, which helps for trackability, recollection, debugging, and fun! :neckbeard:

Messages

  • ๐ŸŒฑ :seedling: initial commits
  • โš“ :anchor: feature scaffolding
  • ๐ŸŽจ :art: general feature development
  • ๐Ÿ“บ :tv: user interface or front-end development
  • ๐Ÿ“ก :satellite: API, back-end, or integration development
  • ๐Ÿ’„ :lipstick: styles, colors, sizes, positions, alignment
  • ๐Ÿ”ง :wrench: configuration, settings, environment variables
  • ๐Ÿšง :construction: work-in-progress, unstable, unusable
  • ๐Ÿ› :bug: bugs, broken windows
  • ๐Ÿ”ฅ :fire: error and exception handling
  • ๐Ÿ“ผ :vhs: general scripts, task automation, code generation
  • ๐Ÿ”ฌ :microscope: test suite additions or updates
  • ๐ŸŽญ :performing_arts: stubs, mocks and fixtures
  • โšก :zap: caching
  • ๐Ÿš€ :rocket: optimizations
  • โœจ :sparkles: cleanup, lint, touch-ups
  • ๐Ÿ“ฆ :package: packages, dependencies
  • ๐Ÿญ :factory: build scripts
  • โ™ป๏ธ :recycle: refactoring code
  • ๐Ÿšš :truck: migrating code, data, files or database tables
  • ๐Ÿ :checkered_flag: large/complex feature checkpoint
  • ๐Ÿ™ˆ :see_no_evil: adding technical debt
  • ๐Ÿ’ฆ :sweat_drops: enigmatic problems
  • ๐Ÿ’ฅ :boom: removing code, files, or data
  • ๐Ÿ‘ป :ghost: temporary or ephemeral changes
  • ๐Ÿ’Š :pill: experimental changes or implementations
  • ๐Ÿ†— :ok: conflict resolutions
  • ๐Ÿ’ฟ :cd: media and static assets
  • ๐Ÿ”Œ :electric_plug: offline mode
  • ๐Ÿ“Ÿ :pager: events, messages, notifications
  • ๐Ÿ”’ :lock: permissions, authorization, authentication, user sessions
  • ๐Ÿ”— :link: routes, paths, links
  • ๐Ÿ‘ฎ :cop: security features, improvements or fixes
  • ๐Ÿ’ฐ :moneybag: payments, subscriptions, trials, pricing models, financing
  • ๐Ÿ“ฑ :iphone: media queries, device-specific changes
  • โ˜๏ธ :cloud: networking, deploy, continuous integration
  • ๐ŸŽ :gift: containerization
  • ๐Ÿ‘๏ธ :eye: monitoring, analytics
  • ๐Ÿ“œ :scroll: documentation, wiki, comments, docstrings, general text
  • ๐Ÿ’ก :bulb: assistive content, learning resources
  • โœ‰๏ธ :envelope: email templates or content
  • โ„๏ธ :snowflake: i18n/l10n, partnerification, white labeling
  • ๐Ÿ”จ :hammer: administration, moderation
  • ๐Ÿค  :cowboy_hat_face: cowboy commit, unreviewed code

Combinations

Combining emojis can be a great way to either increase message specificity or to support a new type of message that's unique to your own application / workflow.

Here are some common scenarios where combining can be very useful:

  • :microscope: :bug: fixed a broken test
  • :anchor: :construction: scaffolding work for a critical feature
  • :wrench: :rocket: configuration change that optimizes the application
  • :scroll: :bug: fixed a typo in the documentation
  • :satellite: :package: added a new third-party dependency to the API
  • :tv: :lock: :checkered_flag: finished integrating auth in the client

There are of course an endless number of scenarios where this can be useful, so please feel free to contribute to this list when you find yourself using novel combinations.

Conflicts

One could argue that certain combinations inherently conflict, such as :art: and :bug:, but I believe that context is everything and I want to ensure that no assumptions are made about what contexts users will find themselves in.

So there are no hard and fast rules regarding how you can/should combine emojis. My only suggestion is to be as consistent as possible so that everybody on your engineering team can benefit and pick up the process quickly.

Contributing

This one is probably as subjective as it gets, but I'm always open to suggestions and objectively discussing which emojis make the most sense. I'm also interested in what other ways commits can be categorized, so please don't be shy!

Roadmap

  • Node API

License

MIT

tasty-commits's People

Contributors

jmunowitch avatar slurmulon avatar

Stargazers

 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  avatar

tasty-commits's Issues

Create commitizen configuration

Some people have brought up that it would be nice if you could choose from a list of change semantics during each commit and automatically generate some or all of the emojis.

We might want to handle this in a separate repo, or we can just stuff it into external or configs or something.

https://github.com/commitizen/cz-cli

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.