{"id":13433414,"url":"https://github.com/ahmadawais/Emoji-Log","last_synced_at":"2025-03-17T12:31:46.066Z","repository":{"id":37270201,"uuid":"132255727","full_name":"ahmadawais/Emoji-Log","owner":"ahmadawais","description":"Emoji-Log — An Emoji Git commit log messages spec. [  📦👌🐛📖🚀🤖 ‼️]","archived":false,"fork":false,"pushed_at":"2023-06-09T10:41:20.000Z","size":516,"stargazers_count":906,"open_issues_count":10,"forks_count":72,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-03-13T02:04:08.501Z","etag":null,"topics":["alfred-snippets","emoji","emoji-log","emoji-meaning","git","vscode","workflow"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ahmadawais.png","metadata":{"files":{"readme":"readme.md","changelog":"changelog.md","contributing":null,"funding":".github/FUNDING.yml","license":"license.md","code_of_conduct":"code-of-conduct.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":["https://Awais.dev/sponsor-USD-10-pm","https://Awais.dev/sponsor-USD-10","https://Awais.dev/sponsor-USD-100","https://Awais.dev/sponsor-USD-50"]}},"created_at":"2018-05-05T14:34:37.000Z","updated_at":"2025-02-13T12:43:18.000Z","dependencies_parsed_at":"2024-10-02T06:41:37.485Z","dependency_job_id":null,"html_url":"https://github.com/ahmadawais/Emoji-Log","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmadawais%2FEmoji-Log","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmadawais%2FEmoji-Log/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmadawais%2FEmoji-Log/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmadawais%2FEmoji-Log/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ahmadawais","download_url":"https://codeload.github.com/ahmadawais/Emoji-Log/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244033825,"owners_count":20387010,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alfred-snippets","emoji","emoji-log","emoji-meaning","git","vscode","workflow"],"created_at":"2024-07-31T02:01:25.460Z","updated_at":"2025-03-17T12:31:45.718Z","avatar_url":"https://github.com/ahmadawais.png","language":"JavaScript","funding_links":["https://Awais.dev/sponsor-USD-10-pm","https://Awais.dev/sponsor-USD-10","https://Awais.dev/sponsor-USD-100","https://Awais.dev/sponsor-USD-50"],"categories":["JavaScript"],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003ca href=\"https://github.com/ahmadawais/Emoji-Log\"\u003e\u003cimg src=\"https://user-images.githubusercontent.com/960133/120058277-31849580-c063-11eb-80f7-d92ff54560d8.png\" /\u003e\u003c/a\u003e\n\n`EMOJI-LOG`\n\n\u003c/h1\u003e\n\nAfter building [hundreds of open source software](https://github.com/ahmadawais) I've ended up inventing a git commit log standard called `EMOJI-LOG` that helps me understand a project's history with a less cognitive load just by looking at the git log.\n\n[![emoji-log](https://cdn.rawgit.com/ahmadawais/stuff/ca97874/emoji-log/non-flat-round.svg)](./../../)\n\n\u003cbr\u003e\n\n![Philosophy](https://user-images.githubusercontent.com/960133/120058283-3ea18480-c063-11eb-8a62-8146227093fa.png)\n\n### PHILOSOPHY\n\nI like emoji. I like ’em a lot. Programming, code, geeks/nerds, open-source, all of that is inherently dull and sometimes boring. Emoji (which is, in fact, the plural of emoji) helps me add colors and emotions to the mix. Nothing wrong if you want to attach feelings to this 2D flat text-based world of code. I found out that instead of memorizing [hundreds of emoji](https://gitmoji.carloscuesta.me/) it's better to keep the categories small and general.\n\n1. **IMPERATIVE** ↓\n    - Make your Git commit messages imperative.\n    - Write a commit message like you're giving an order.\n    - E.g., Use ✅ `Add` instead of ❌ `Added`.\n    - E.g., Use ✅ `Create` instead of ❌ `Creating`.\n1. **RULES** ↓\n    - A small number of categories — easy to memorize.\n    - Nothing more nothing less.\n    - E.g. `📦 NEW`, `👌 IMPROVE`, `🐛 FIX`, `📖 DOC`, `🚀 RELEASE`, `🤖 TEST`, and `‼️ BREAKING`\n1. **ACTIONS** ↓\n    - Make git commits based on the actions you take.\n    - Use a good editor like [VSCode](https://code.visualstudio.com/) to commit the right files with commit messages.\n\n\u003cbr\u003e\n\n![Start](https://user-images.githubusercontent.com/960133/120058297-4c570a00-c063-11eb-8458-0f61cf621169.png)\n\n### GETTING STARTED\n\nOnly use the following Git Commit Messages. A simple and small footprint is critical here.\n\n1. `📦 NEW: IMPERATIVE_MESSAGE_GOES_HERE`\n    \u003e Use when you add something entirely new.\n    \u003e E.g. `📦 NEW: Add Git ignore file`\n\n1. `👌 IMPROVE: IMPERATIVE_MESSAGE_GOES_HERE`\n    \u003e Use when you improve/enhance piece of code like refactoring etc.\n    \u003e E.g. `👌 IMPROVE: Remote IP API Function`\n\n1. `🐛 FIX: IMPERATIVE_MESSAGE_GOES_HERE`\n    \u003e Use when you fix a bug — need I say more?\n    \u003e E.g. `🐛 FIX: Case conversion`\n\n1. `📖 DOC: IMPERATIVE_MESSAGE_GOES_HERE`\n    \u003e Use when you add documentation like `README.md`, or even inline docs.\n    \u003e E.g. `📖 DOC: API Interface Tutorial`\n\n1. `🚀 RELEASE: IMPERATIVE_MESSAGE_GOES_HERE`\n    \u003e Use when you release a new version.\n    \u003e E.g. `🚀 RELEASE: Version 2.0.0`\n\n1. `🤖 TEST: IMPERATIVE_MESSAGE_GOES_HERE`\n    \u003e Use when it's related to testing.\n    \u003e E.g. `🤖 TEST: Mock User Login/Logout`\n\n1. `‼️ BREAKING: IMPERATIVE_MESSAGE_GOES_HERE`\n    \u003e Use when releasing a change that breaks previous versions.\n    \u003e E.g. `‼️ BREAKING: Change authentication protocol`\n\n_— That's it for now. Nothing more nothing less._\n\n\u003cbr\u003e\n\n![More](https://user-images.githubusercontent.com/960133/120058303-5547db80-c063-11eb-87ae-17f758a4e43b.png)\n\n#### THE WORKFLOW \u0026 MEANINGS\n\nI'd like to share what each of these emojis mean.\n\n- `📦 NEW:` Emoji meaning: A \"package emoji\" — which can contain new stuff.\n- `👌 IMPROVE:` Emoji meaning: An \"OK Hand emoji\" — which is meant to appreciate an improvement.\n- `🐛 FIX:` Emoji meaning: A \"bug emoji\" — which means there was a bug that got fixed.\n- `📖 DOCS:` Emoji meaning: A \"book emoji\" — which means documentation or notes just like in a book.\n- `🚀 RELEASE:` Emoji meaning: A \"rocket emoji\" — which is meant to show a new release/launch.\n- `🤖 TEST:` Emoji meaning: A \"robot emoji\" — which says some test were run successfully.\n- `‼️ BREAKING:` Emoji meaning: A \"bangbang emoji\" — which attracts attention to a breaking change.\n\n##### VSCode Extension\n\nIf you use VSCode, then I have built an extension [Emoji-Log for VSCode](https://marketplace.visualstudio.com/items?itemName=ahmadawais.emoji-log-vscode). This can help you write git commit messages quickly.\n\n##### Bash/Zsh Workflow\n\nFor quick prototyping, I have made the following functions that you can add to your `.bashrc`/`.zshrc` files and use Emoji-Log quickly.\n\n```sh\n#.# Better Git Logs.\n### Using EMOJI-LOG (https://github.com/ahmadawais/Emoji-Log).\n\n# Git Commit, Add all and Push — in one step.\ngcap() {\n    git add . \u0026\u0026 git commit -m \"$*\" \u0026\u0026 git push\n}\n\n# NEW.\ngnew() {\n    gcap \"📦 NEW: $@\"\n}\n\n# IMPROVE.\ngimp() {\n    gcap \"👌 IMPROVE: $@\"\n}\n\n# FIX.\ngfix() {\n    gcap \"🐛 FIX: $@\"\n}\n\n# RELEASE.\ngrlz() {\n    gcap \"🚀 RELEASE: $@\"\n}\n\n# DOC.\ngdoc() {\n    gcap \"📖 DOC: $@\"\n}\n\n# TEST.\ngtst() {\n    gcap \"🤖 TEST: $@\"\n}\n\n# BREAKING CHANGE.\ngbrk() {\n    gcap \"‼️ BREAKING: $@\"\n}\ngtype() {\nNORMAL='\\033[0;39m'\nGREEN='\\033[0;32m'\necho \"$GREEN gnew$NORMAL — 📦 NEW\n$GREEN gimp$NORMAL — 👌 IMPROVE\n$GREEN gfix$NORMAL — 🐛 FIX\n$GREEN grlz$NORMAL — 🚀 RELEASE\n$GREEN gdoc$NORMAL — 📖 DOC\n$GREEN gtst$NORMAL — 🧪️ TEST\n$GREEN gbrk$NORMAL — ‼️ BREAKING\"\n}\n```\n\n##### Fish Shell Workflow\n\nTo install these functions for the fish shell, run the following commands:\n\n```sh\nfunction gcap; git add .; and git commit -m \"$argv\"; and git push; end;\nfunction gnew; gcap \"📦 NEW: $argv\"; end\nfunction gimp; gcap \"👌 IMPROVE: $argv\"; end;\nfunction gfix; gcap \"🐛 FIX: $argv\"; end;\nfunction grlz; gcap \"🚀 RELEASE: $argv\"; end;\nfunction gdoc; gcap \"📖 DOC: $argv\"; end;\nfunction gtst; gcap \"🤖 TEST: $argv\"; end;\nfunction gbrk; gcap \"‼️ BREAKING: $argv\"; end;\nfuncsave gcap\nfuncsave gnew\nfuncsave gimp\nfuncsave gfix\nfuncsave grlz\nfuncsave gdoc\nfuncsave gtst\nfuncsave gbrk\n```\n\n##### Git Aliases\n\nIf you prefer, you can paste these aliases directly in your `~/.gitconfig` file:\n\n```sh\n# Make sure you're adding under the [alias] block.\n[alias]\n  # Git Commit, Add all and Push — in one step.\n  cap = \"!f() { git add .; git commit -m \\\"$@\\\"; git push; }; f\"\n\n  # NEW.\n  new = \"!f() { git cap \\\"📦 NEW: $@\\\"; }; f\"\n  # IMPROVE.\n  imp = \"!f() { git cap \\\"👌 IMPROVE: $@\\\"; }; f\"\n  # FIX.\n  fix = \"!f() { git cap \\\"🐛 FIX: $@\\\"; }; f\"\n  # RELEASE.\n  rlz = \"!f() { git cap \\\"🚀 RELEASE: $@\\\"; }; f\"\n  # DOC.\n  doc = \"!f() { git cap \\\"📖 DOC: $@\\\"; }; f\"\n  # TEST.\n  tst = \"!f() { git cap \\\"🤖 TEST: $@\\\"; }; f\"\n  # BREAKING CHANGE.\n  brk = \"!f() { git cap \\\"‼️ BREAKING: $@\\\"; }; f\"\n```\n\n\u003cbr\u003e\n\n![Using](https://user-images.githubusercontent.com/960133/120058311-61339d80-c063-11eb-9853-da0905b7c288.png)\n\n### USING `EMOJI-LOG`\n\nHere's a list of repos that make use of Emoji-Log.\n\n- [Create-Guten-Block Toolkit →](https://github.com/ahmadawais/create-guten-block/commits/)\n- [VSCode Shades of Purple Theme →](https://github.com/ahmadawais/shades-of-purple-vscode/commits/)\n- [Ahmad Awais GitHub Repos →](https://github.com/ahmadawais) — _Latest repos on this account._\n- [CaptainCore CLI (WordPress Management Toolkit) →](https://github.com/CaptainCore/captaincore-cli/commits/)\n- [CaptainCore GUI (WordPress plugin) →](https://github.com/CaptainCore/captaincore-gui/commits/)\n- **You?!** Add your repo to the list after adding the Emoji-log badge to your readme.\n\n\u003cbr\u003e\n\n![AlfredSnippets](https://user-images.githubusercontent.com/960133/120058316-685aab80-c063-11eb-8bfd-cb0d4b3e34c2.png)\n\n### Alfred Snippets\n\n[Alfred](https://www.alfredapp.com/) [PowerPack](https://www.alfredapp.com/powerpack/) users can use the Snippets feature to quickly call Emoji-Log, or use the text expand feature for even quicker creation.\n\nTo setup:\n\n1. Have Alfred 3 with PowerPack installed\n2. For auto expansion, in _Alfred Settings » Features » Snippets_ ensure the \"Automatically expand snippets by Keyword\" box is checked\n3. Download \u0026 open [`Emoji-Log.alfredsnippets`](Emoji-Log.alfredsnippets), deselecting \"Strip snippets of 'auto expand' flag\" when prompted\n\nThis will give the following text expander keywords for the Emoji-Log:\n\n| Keyword |   Snippet    |\n| ------- | ------------ |\n| `;gnew` | 📦 NEW:      |\n| `;gimp` | 👌 IMPROVE:  |\n| `;gfix` | 🐛 FIX:      |\n| `;grlz` | 🚀 RELEASE:  |\n| `;gdoc` | 📖 DOC:      |\n| `;gtst` | 🤖 TEST:     |\n| `;gbrk` | ‼️ BREAKING:  |\n\nTo edit the `;` prefix to your preferred expansion flag, double click right click the Emoji-Log Collection in _Alfred Settings » Features » Snippets_.\n\n\u003e TextExpander Snippets are also available. Download \u0026 open [`Emoji-Log.textexpander`](Emoji-Log.textexpander) to import.\n\n\u003cbr\u003e\n\n![badge](https://user-images.githubusercontent.com/960133/120058320-6ee92300-c063-11eb-834c-20463fdfb0dd.png)\n\n### `EMOJI-LOG` BADGE COLLECTION\n\nIf your repo uses `EMOJI-LOG` then you can add any of the following badges to your read me and send me a PR to list your repo here.\n\n\u003cbr\u003e\n\n![emoji-log](https://cdn.rawgit.com/ahmadawais/stuff/ca97874/emoji-log/flat.svg)\n\n- **STYLE**: Flat Square\n- **MARKDOWN** ↓\n\n```markdown\n[![emoji-log](https://cdn.rawgit.com/ahmadawais/stuff/ca97874/emoji-log/flat.svg)](https://github.com/ahmadawais/Emoji-Log/)\n```\n\n- **HTML** ↓\n\n```html\n\u003ca href=\"https://github.com/ahmadawais/Emoji-Log/\"\u003e\u003cimg alt=\"emoji-log\" src=\"https://cdn.rawgit.com/ahmadawais/stuff/ca97874/emoji-log/flat.svg\" /\u003e\u003c/a\u003e\n```\n\n\u003cbr\u003e\n\n![emoji-log](https://cdn.rawgit.com/ahmadawais/stuff/ca97874/emoji-log/flat-round.svg)\n\n- **STYLE**: Flat Rounded\n- **MARKDOWN** ↓\n\n```markdown\n[![emoji-log](https://cdn.rawgit.com/ahmadawais/stuff/ca97874/emoji-log/flat-round.svg)](https://github.com/ahmadawais/Emoji-Log/)\n```\n\n- **HTML** ↓\n\n```html\n\u003ca href=\"https://github.com/ahmadawais/Emoji-Log/\"\u003e\u003cimg alt=\"emoji-log\" src=\"https://cdn.rawgit.com/ahmadawais/stuff/ca97874/emoji-log/flat-round.svg\" /\u003e\u003c/a\u003e\n```\n\n\u003cbr\u003e\n\n![emoji-log](https://cdn.rawgit.com/ahmadawais/stuff/ca97874/emoji-log/non-flat-round.svg)\n\n- **STYLE**: Non-flat Rounded\n- **MARKDOWN** ↓\n\n```markdown\n[![emoji-log](https://cdn.rawgit.com/ahmadawais/stuff/ca97874/emoji-log/non-flat-round.svg)](https://github.com/ahmadawais/Emoji-Log/)\n```\n\n- **HTML** ↓\n\n```html\n\u003ca href=\"https://github.com/ahmadawais/Emoji-Log/\"\u003e\u003cimg alt=\"emoji-log\" src=\"https://cdn.rawgit.com/ahmadawais/stuff/ca97874/emoji-log/non-flat-round.svg\" /\u003e\u003c/a\u003e\n```\n\n\u003cbr\u003e\n\n[![👌](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/sponsor.png)](./../../)\n\n## Sponsor\n\nMe ([Ahmad Awais](https://twitter.com/mrahmadawais/)) and my incredible wife ([Maedah Batool](https://twitter.com/MaedahBatool/)) are two engineers who fell in love with open source and then with each other. You can read more [about me here](https://ahmadawais.com/about). If you or your company use any of my projects or like what I’m doing then consider backing me. I'm in this for the long run. An open-source developer advocate.\n\n- 🌟  **$9.99/month (recommended)** ❯ [Two cups of Caffè latte (coffee) every month →](https://pay.paddle.com/checkout/540217)\n- 🚀  **$99.99 (one-time sponsor)** ❯ [Support an hour of open-source code →](https://pay.paddle.com/checkout/515568)\n- 🔰  **$49.99 (one-time sponsor)** ❯ [Support an hour of maintenance →](https://pay.paddle.com/checkout/527253)\n- ☕️  **$9.99 (one-time sponsor)** ❯ [Lunch/coffee →](https://pay.paddle.com/checkout/527254)\n\n\u003cbr\u003e\n\n[![📃](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/license.png)](./../../)\n\n## License \u0026 Conduct\n\n- MIT © [Ahmad Awais](https://twitter.com/MrAhmadAwais/)\n- [Code of Conduct](code-of-conduct.md)\n- [Munawar](https://munwr.com/) for making awesome badges\n\n\u003cbr\u003e\n\n[![🙌](https://raw.githubusercontent.com/ahmadawais/stuff/master/images/git/connect.png)](./../../)\n\n## Connect\n\n\u003cdiv align=\"left\"\u003e\n    \u003cp\u003e\u003ca href=\"https://github.com/ahmadawais\"\u003e\u003cimg alt=\"GitHub @AhmadAwais\" align=\"center\" src=\"https://img.shields.io/badge/GITHUB-gray.svg?colorB=6cc644\u0026style=flat\" /\u003e\u003c/a\u003e\u0026nbsp;\u003csmall\u003e\u003cstrong\u003e(follow)\u003c/strong\u003e To stay up to date on free \u0026 open-source software\u003c/small\u003e\u003c/p\u003e\n    \u003cp\u003e\u003ca href=\"https://twitter.com/MrAhmadAwais/\"\u003e\u003cimg alt=\"Twitter @MrAhmadAwais\" align=\"center\" src=\"https://img.shields.io/badge/TWITTER-gray.svg?colorB=1da1f2\u0026style=flat\" /\u003e\u003c/a\u003e\u0026nbsp;\u003csmall\u003e\u003cstrong\u003e(follow)\u003c/strong\u003e To get #OneDevMinute daily hot tips \u0026 trolls\u003c/small\u003e\u003c/p\u003e\n    \u003cp\u003e\u003ca href=\"https://www.youtube.com/AhmadAwais\"\u003e\u003cimg alt=\"YouTube AhmadAwais\" align=\"center\" src=\"https://img.shields.io/badge/YOUTUBE-gray.svg?colorB=ff0000\u0026style=flat\" /\u003e\u003c/a\u003e\u0026nbsp;\u003csmall\u003e\u003cstrong\u003e(subscribe)\u003c/strong\u003e To tech talks \u0026 #OneDevMinute videos\u003c/small\u003e\u003c/p\u003e\n    \u003cp\u003e\u003ca href=\"https://AhmadAwais.com/\"\u003e\u003cimg alt=\"Blog: AhmadAwais.com\" align=\"center\" src=\"https://img.shields.io/badge/MY%20BLOG-gray.svg?colorB=4D2AFF\u0026style=flat\" /\u003e\u003c/a\u003e\u0026nbsp;\u003csmall\u003e\u003cstrong\u003e(read)\u003c/strong\u003e In-depth \u0026 long form technical articles\u003c/small\u003e\u003c/p\u003e\n    \u003cp\u003e\u003ca href=\"https://www.linkedin.com/in/MrAhmadAwais/\"\u003e\u003cimg alt=\"LinkedIn @MrAhmadAwais\" align=\"center\" src=\"https://img.shields.io/badge/LINKEDIN-gray.svg?colorB=0077b5\u0026style=flat\" /\u003e\u003c/a\u003e\u0026nbsp;\u003csmall\u003e\u003cstrong\u003e(connect)\u003c/strong\u003e On the LinkedIn profile y'all\u003c/small\u003e\u003c/p\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fahmadawais%2FEmoji-Log","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fahmadawais%2FEmoji-Log","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fahmadawais%2FEmoji-Log/lists"}