├── Gemfile
├── LICENSE
├── .gitignore
├── _config.yml
├── CONTRIBUTING.md
├── _includes
└── head-custom-google-analytics.html
└── README.md
/Gemfile:
--------------------------------------------------------------------------------
1 | source 'https://rubygems.org'
2 | gem 'github-pages', group: :jekyll_plugins
3 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | The Code is licensed under the [MIT License](http://slashsbin.mit-license.org/).
4 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ### Ruby ###
2 | Gemfile.lock
3 |
4 | ### Jekyll ###
5 | _site/
6 | .sass-cache/
7 | .jekyll-metadata
8 |
--------------------------------------------------------------------------------
/_config.yml:
--------------------------------------------------------------------------------
1 | theme: jekyll-theme-hacker
2 | show_downloads: false
3 | google_analytics: G-N6DVDQE97E
4 | gems:
5 | - jemoji
6 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing
2 |
3 | [Ask](https://github.com/slashsBin/styleguide-git-commit-message/issues/new) to Be [Creative](https://www.emojicopy.com/)!
4 |
5 | To add a new Emoji to the list: [Create an Issue](https://github.com/slashsBin/styleguide-git-commit-message/issues/new) & Send a [PR]().
6 |
--------------------------------------------------------------------------------
/_includes/head-custom-google-analytics.html:
--------------------------------------------------------------------------------
1 | {% if site.google_analytics %}
2 |
3 |
10 | {% endif %}
11 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | &
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | # Git Commit Message StyleGuide
15 |
16 | ##### TOC
17 | - [About](#about)
18 | - [Commit Message Format](#commit-message-format)
19 | - [Suggested Emojis](#suggested-emojis)
20 | - [Tools](#tools)
21 | - [Related Ideas](#related-ideas)
22 | - [Fun Emoji Usages](#fun-emoji-usages)
23 | - [Contributing](#contributing)
24 | - [License](#license)
25 |
26 |
27 | ## About
28 | This is an attempt to standardize the format of commit messages, for the sake of **uniformity** in git log, **best practices** for writing commit messages & **fun**!
29 |
30 | Using emojis at the beginning of commit messages, other than being fun, provides a simple way to indicate the intention of that commit, an ease for the eyes when browsing/reviewing git log. It's also a simple measure of the fact that how much that commit is focused on a single purpose, which is a good practice.
31 |
32 | If these rules and/or using emojis is an [overkill](/../../issues/21) for your productivity or simply losing its purposes, please tailor them to your needs or don't use them.
33 |
34 | ### Summary of the reasons for these conventions:
35 | - Fun!
36 | - Simple navigation through git history (e.g. ignoring style changes).
37 | - Automatic generating of the changelog.
38 |
39 |
40 | ## Commit Message Format
41 |
42 | ```
43 | ():
44 |
45 |
46 |
47 |
48 | ```
49 |
50 | ### Message Subject(first line)
51 | - Capitalize the ``.
52 | - Do not end the first line with a period.
53 | - Total characters of the first line **MUST** be _Less_ than or _Equal_ to **50** characters Long.
54 | - Use the **present tense** ("Add feature" not "Added feature").
55 | - Use the **imperative mood** ("Move cursor to..." not "Moves cursor to...").
56 | - Use `` to identify what type of changes introduced in this commit; Allowed `` keywords:
57 | - An Emoji(see below for [list of Suggested Emojis](#suggested-emojis))
58 | - Or a Text:
59 | - feat: new feature for the user(or :sparkles: emoji)
60 | - fix: bug fix for the user(or :ambulance: emoji)
61 | - docs: changes to the documentation(or :books: emoji)
62 | - style: formatting, missing semi colons, etc; no production code change(or :art: emoji)
63 | - refactor: refactoring production code, eg. renaming a variable(or :tractor: emoji)
64 | - test: adding missing tests, refactoring tests; no production code change(or :microscope: emoji)
65 | - chore: updating grunt tasks etc; no production code change
66 | - If you need more than one keyword or emoji to use, you should probably think twice!. This usally means you need to break this commit into more smaller commits; If thats not the case then separate each emoji with a space.
67 | - Use `` to identify which component this `` is related to; Example `` values:
68 | - init
69 | - runner
70 | - watcher
71 | - config
72 | - web-server
73 | - proxy
74 | - etc.
75 | - The `` can also be empty (e.g. if the change is a global or difficult to assign to a single component), in which case the parentheses are omitted.
76 |
77 | ### Message Body
78 | - Includes **motivation** for the change and contrasts with previous behavior.
79 | - Use the body to explain **whats** and **whys** vs. *hows*.
80 | - Wrap each line of the body at **72** characters.
81 |
82 | ### Message Footer
83 | - Reference issues this commit is related to with the status of that Issue; Ex. `Issue #27`, `Ref T27` or `Ref T27, T56` or `Fixes T8`.
84 | - Supported issue tracker status keywords:
85 | - Fixes
86 | - Fixed
87 | - Closes
88 | - Closed
89 | - Resolves
90 | - Resolved
91 | - Ref
92 | - Issue
93 | - Issues
94 | - More info on issue tracker status keywords:
95 | - [GitHub Issues](https://help.github.com/articles/closing-issues-using-keywords/)
96 | - [GitLab Issues](https://docs.gitlab.com/ee/user/project/issues/automatic_issue_closing.html)
97 | - [Phabricator Tasks](https://secure.phabricator.com/book/phabricator/article/diffusion_autoclose/)
98 | - It's also [recommended](/../../issues/19) to use _Full URL to the Issues_, instead of just issue ID Number; Doing so will ease browsing issues from terminal.
99 | - In the case of multiple issues separate them with commas, Ex. `Closes #27, #56`.
100 |
101 | ### Notes
102 | - Use valid [MarkDown](https://daringfireball.net/projects/markdown/basics) format in the ``.
103 | - All **WIP**(Work In Progress) commits **SHOULD** have the :construction: Emoji.
104 | - All **WIP** commits **SHOULD** be avoided!.
105 | - Referencing Issues by using special keywords like `Fixes` or `Resolves` will mark them as closed automatically! For more information about automatic issue closing using ketwords see their documentation(linked above).
106 | - There is **NO** new-line after the ``.
107 | - Every emoji text(`:emoji:`) is counted as one character!.
108 | - See [ToDo Grammar StyleGuide](https://github.com/slashsbin/styleguide-todo-grammar) for more Information on `@XXX` Comment Tags.
109 |
110 |
111 | ## Suggested Emojis
112 |
113 | | Emoji | Raw Emoji Code | Description |
114 | |:---:|:---:|---|
115 | | :art: | `:art:` | when improving the **format**/structure of the code |
116 | | :newspaper: | `:newspaper:` | when creating a **new file** |
117 | | :pencil: | `:pencil:` | when **performing minor changes/fixing** the code or language |
118 | | :racehorse: | `:racehorse:` | when improving **performance** |
119 | | :books: | `:books:` | when writing **docs** |
120 | | :bug: | `:bug:` | when reporting a **bug**, with [`@FIXME`](https://github.com/slashsbin/styleguide-todo-grammar#bug-report)Comment Tag |
121 | | :ambulance: | `:ambulance:` | when fixing a **bug** |
122 | | :penguin: | `:penguin:` | when fixing something on **Linux** |
123 | | :apple: | `:apple:` | when fixing something on **Mac OS** |
124 | | :checkered_flag: | `:checkered_flag:` | when fixing something on **Windows** |
125 | | :fire: | `:fire:` | when **removing code** or files, _maybe_ with `@CHANGED` Comment Tag |
126 | | :tractor: | `:tractor:` | when **change file structure**. Usually together with :art: |
127 | | :hammer: | `:hammer:` | when **refactoring** code |
128 | | :umbrella: | `:umbrella:` | when adding **tests** |
129 | | :microscope: | `:microscope:` | when adding **code coverage** |
130 | | :green_heart: | `:green_heart:` | when fixing the **CI** build |
131 | | :lock: | `:lock:` | when dealing with **security** |
132 | | :arrow_up: | `:arrow_up:` | when upgrading **dependencies** |
133 | | :arrow_down: | `:arrow_down:` | when downgrading **dependencies** |
134 | | :fast_forward: | `:fast_forward:` | when **forward-porting features** from an older version/branch |
135 | | :rewind: | `:rewind:` | when **backporting features** from a newer version/branch |
136 | | :shirt: | `:shirt:` | when removing **linter**/strict/deprecation warnings |
137 | | :lipstick: | `:lipstick:` | when improving **UI**/Cosmetic |
138 | | :wheelchair: | `:wheelchair:` | when improving **accessibility** |
139 | | :globe_with_meridians: | `:globe_with_meridians:` | when dealing with **globalization**/internationalization/i18n/g11n |
140 | | :construction: | `:construction:` | **WIP**(Work In Progress) Commits, _maybe_ with `@REVIEW` Comment Tag |
141 | | :gem: | `:gem:` | New **Release** |
142 | | :egg: | `:egg:` | New **Release** with Python egg|
143 | | :ferris_wheel: | `:ferris_wheel:` | New **Release** with Python wheel package |
144 | | :bookmark: | `:bookmark:` | Version **Tags** |
145 | | :tada: | `:tada:` | **Initial** Commit |
146 | | :speaker: | `:speaker:` | when Adding **Logging** |
147 | | :mute: | `:mute:` | when Reducing **Logging** |
148 | | :sparkles: | `:sparkles:` | when introducing **New** Features |
149 | | :zap: | `:zap:` | when introducing **Backward-InCompatible** Features, _maybe_ with `@CHANGED` Comment Tag |
150 | | :bulb: | `:bulb:` | New **Idea**, with `@IDEA` Comment Tag |
151 | | :snowflake: | `:snowflake:` | changing **Configuration**, Usually together with :penguin: or :ribbon: or :rocket: |
152 | | :ribbon: | `:ribbon:` | Customer requested application **Customization**, with `@HACK` Comment Tag |
153 | | :rocket: | `:rocket:` | Anything related to Deployments/**DevOps** |
154 | | :elephant: | `:elephant:` | **PostgreSQL** Database specific (Migrations, Scripts, Extensions, ...) |
155 | | :dolphin: | `:dolphin:` | **MySQL** Database specific (Migrations, Scripts, Extensions, ...) |
156 | | :leaves: | `:leaves:` | **MongoDB** Database specific (Migrations, Scripts, Extensions, ...) |
157 | | :bank: | `:bank:` | **Generic Database** specific (Migrations, Scripts, Extensions, ...) |
158 | | :whale: | `:whale:` | **Docker** Configuration |
159 | | :handshake: | `:handshake:` | when **Merge files** |
160 | | :cherries: | `:cherries:` | when Commit Arise from one or more [**Cherry-Pick**](https://git-scm.com/docs/git-cherry-pick) Commit(s) |
161 |
162 |
163 | ## Tools
164 |
165 | - [Commit](https://github.com/jakeasmith/commit)(CLI): This is a nifty CLI tool to aid in standardizing commit messages based on this document, thanks to @jakeasmith.
166 | - [gitMoji](https://gitlab.com/louisgrasset/git-moji)(Firefox & Chrome Extension): Enhance your commits with emojis!, thanks to [@louisgrasset](https://twitter.com/louisgrasset).
167 |
168 |
169 | ## Related Ideas
170 |
171 | - [gitmoji](https://gitmoji.dev/): An emoji guide for your commit messages.
172 | - [Conventional Commits](https://www.conventionalcommits.org/): A specification for adding human and machine readable meaning to commit messages.
173 | - [Keep a Changelog](https://keepachangelog.com/): Don’t let your friends dump git logs into changelogs.
174 |
175 |
176 | ## Fun Emoji Usages
177 | - [CodeEmoji](https://codemoji.org/): Mozilla’s Codemoji enciphers your messages with emoji for fun and profit.
178 | - [Emoji Based Diagram](https://blog.mozilla.org/services/2016/08/23/sending-vapid-identified-webpush-notifications-via-mozillas-push-service/#send_data): Emoji Based Diagram of Data Bearing Subscription Updates(WebPush VAPID).
179 | - [HTTP status codes as emoji](https://twitter.com/nlognhq/status/1314443449244946436).
180 | - [OSI Model with emojis](https://twitter.com/jbizzle703/status/1320745108594135041).
181 |
182 |
183 | ## Contributing
184 |
185 | [Ask](https://github.com/slashsbin/styleguide-git-commit-message/issues/new) to Be [Creative](https://www.emojicopy.com/)!
186 |
187 | To add a new Emoji to the list: [Create an Issue](https://github.com/slashsbin/styleguide-git-commit-message/issues/new) & Send a [PR]().
188 |
189 |
190 | ## License
191 |
192 | The Code is licensed under the [MIT License](http://slashsbin.mit-license.org/).
193 |
--------------------------------------------------------------------------------