{"id":21890866,"url":"https://github.com/chantastic/commit-guidelines","last_synced_at":"2025-09-09T22:06:06.081Z","repository":{"id":22265443,"uuid":"25599520","full_name":"chantastic/commit-guidelines","owner":"chantastic","description":"How we commit code","archived":false,"fork":false,"pushed_at":"2016-05-10T23:11:50.000Z","size":3,"stargazers_count":23,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-02T22:29:26.696Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"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/chantastic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-10-22T19:14:52.000Z","updated_at":"2024-01-09T09:54:48.000Z","dependencies_parsed_at":"2022-07-23T17:30:32.091Z","dependency_job_id":null,"html_url":"https://github.com/chantastic/commit-guidelines","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chantastic%2Fcommit-guidelines","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chantastic%2Fcommit-guidelines/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chantastic%2Fcommit-guidelines/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chantastic%2Fcommit-guidelines/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chantastic","download_url":"https://codeload.github.com/chantastic/commit-guidelines/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244898458,"owners_count":20528341,"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":[],"created_at":"2024-11-28T12:17:42.316Z","updated_at":"2025-03-22T03:11:53.431Z","avatar_url":"https://github.com/chantastic.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Commit Guidelines\nMostly reasonable guidelines for commit messages.\n\n## Commit Message Format\nCommit messages consist of a [message](#message), [description](#description)\nand [related](#related).\n\n```\n\u003cmessage\u003e\n\n\u003cdescription\u003e\n\n\u003crelated\u003e\n```\n\nA [message](#message) consists of a [type](#type), [scope](#scope), and\n[subject](#subject).\n\nNo line should be longer than 80 characters long, for optimal github viewing.\n\n## Message\n```\n\u003ctype\u003e(\u003cscope\u003e): \u003csubject\u003e\n```\n\nExamples: `refactor(plans#show): remove 1 of 4 templating languages`\n\n### Type\n* `feat`: New feature\n* `fix`: Bug fix\n* `format`: Change not affecting the **meaning** of code (white-space, formatting, etc)\n* `docs`: Documentation-**only** change\n* `style`: Stylesheet-**only** change\n* `refactor`: Change that neither fixes a bug or adds a feature\n* `perf`: Change that improves performance\n* `test`: Addition of a missing test\n* `chore`: Changes to the build process or auxiliary tools and libraries\n\n### Scope\nThe scope could be anything specifying the site of the commit change. For\nexample `plans#show`, `PlanPerson`, `LiveChatMessageList`, `.tab-list`, etc...\n\n### Subject\nThe subject contains a succinct description of the change:\n\n* use the imperative, present tense: \"change\" not \"changed\" nor \"changes\"\n* don't use capitalize first letters\n* don't use trailing punctuation (.)\n\n### Description\nJust as in the [subject](#subject), use the imperative, present tense: \"change\"\nnot \"changed\" nor \"changes\" The body should include the motivation for the\nchange.\n\n### Related\nThe footer should contain any information about **Breaking Changes** and is the\nplace to reference Trello cards, or GitHub issues that the commit **Closes**.\n\n### Attribution\nThis guide is ~~pirated from~~ inspired by Angular's excellent\n[CONTRIBUTING.md](https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#-git-commit-guidelines).\n\nA detailed explanation can be found in this [document][commit-message-format].\n\n[commit-message-format]: https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/edit#\n\n## `fixup` commits\n\nYour stuff's on staging but you're making small, progressive tweeks. `fixup` is your friend.\n\nFixup commits are associated with commit you've already made. They allow you to make commits without inserting additional messages. They can also be automatically squashed, for those civilized developers.\n\nHere's how it works. `commit` takes `--fixup` as on option. When used, you'll have to provide the SHA of the commit your is fixing up. Like so:\n\n```bash\ngit commit --fixup a9b8c7\n\n# aliases also work but get confusing after your first fix\n\ngit commit --fixup head\n```\n\nYou probably don't memorize your recent commit SHAs. You can use the syntax below as a backword search. This fixup commit will attach to the most recent commit, where \"style\" is in the message:\n\n```bash\ngit commit --fixup :/style\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchantastic%2Fcommit-guidelines","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchantastic%2Fcommit-guidelines","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchantastic%2Fcommit-guidelines/lists"}