{"id":125,"date":"2025-06-10T11:52:12","date_gmt":"2025-06-10T09:52:12","guid":{"rendered":"http:\/\/localhost:8001\/?p=125"},"modified":"2025-06-11T15:31:34","modified_gmt":"2025-06-11T13:31:34","slug":"semantic-commit-messages-mejora-tus-commits-y-tu-flujo-de-trabajo","status":"publish","type":"post","link":"https:\/\/carlosarranz.es\/en\/semantic-commit-messages-mejora-tus-commits-y-tu-flujo-de-trabajo\/","title":{"rendered":"Semantic Commit Messages: Improve Your Commits and Workflow"},"content":{"rendered":"<h2 class=\"wp-block-heading\">Table of contents<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#introduccion\">Introduction<\/a><\/li>\n\n\n\n<li><a href=\"#formato-basico\">Basic format<\/a><\/li>\n\n\n\n<li><a href=\"#cheatsheet-y-tendencias-alternativas\">Cheatsheet and alternative trends<\/a><\/li>\n\n\n\n<li><a href=\"#beneficios\">Benefits<\/a><\/li>\n\n\n\n<li><a href=\"#ejemplos-narrativos\">Narrative examples<\/a><\/li>\n\n\n\n<li><a href=\"#recursos-recomendados\">Recommended resources<\/a><\/li>\n\n\n\n<li><a href=\"#conclusion\">Conclusion<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"introduccion\">Introduction<\/h2>\n\n\n\n<p>Every cell in your body regenerates. In seven years, you literally won&#039;t be the same person. Do you think that in all that time you&#039;ll remember what that commit you made today was for? Not you, not anyone.<\/p>\n\n\n\n<p>And yet, we keep writing commit messages as if we&#039;ll remember them forever. &quot;Minor changes,&quot; &quot;miscellaneous fixes,&quot; &quot;final adjustments.&quot; As if that were enough.<\/p>\n\n\n\n<p>This article is an invitation to change that. To write commit messages that are understandable. That tell a story. That help you debug, collaborate, and grow as a developer.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"formato-basico\">Basic format<\/h2>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code class=\"language-git\" data-line=\"\">( ):\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>is optional and indicates the affected area (for example, <code class=\"\" data-line=\"\">api<\/code>, <code class=\"\" data-line=\"\">ui<\/code>, <code class=\"\" data-line=\"\">build<\/code>).<\/li>\n\n\n\n<li>The <strong>&lt;descripci\u00f3n&gt;<\/strong> It is a short phrase in the present tense, like a newspaper headline.<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\"><\/div>\n<\/div>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code class=\"language-git\" data-line=\"\">feat(login): allow login with Google\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"cheatsheet-y-tendencias-alternativas\">Cheatsheet and alternative trends<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Most used types<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Guy<\/th><th>When to use it?<\/th><\/tr><\/thead><tbody><tr><td>feat<\/td><td>New functionality for the user<\/td><\/tr><tr><td>fix<\/td><td>Bug fixes<\/td><\/tr><tr><td>docs<\/td><td>Changes in documentation<\/td><\/tr><tr><td>style<\/td><td>Aesthetic changes, without affecting logic<\/td><\/tr><tr><td>refactor<\/td><td>Internal improvement without changing functionality<\/td><\/tr><tr><td>test<\/td><td>Add or modify tests<\/td><\/tr><tr><td>chore<\/td><td>Internal or maintenance tasks<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Other trends in the community<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Conventional Commits<\/h4>\n\n\n\n<p>Base of many modern tools (such as Semantic Release).<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Advantages: CI\/CD compatible, automatic changelogs.<\/li>\n\n\n\n<li>Drawbacks: It can feel bureaucratic if it doesn&#039;t fit well.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Gitmoji<\/h4>\n\n\n\n<p>Combine semantics + emojis.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Example: <code class=\"\" data-line=\"\">\u2728feat: new form component<\/code><\/li>\n\n\n\n<li>Advantages: more visual and expressive.<\/li>\n\n\n\n<li>Disadvantages: It can be informal in certain professional contexts.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Custom prefixes<\/h4>\n\n\n\n<p>Defined by the team according to their needs.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Example: <code class=\"\" data-line=\"\">UX:<\/code>, <code class=\"\" data-line=\"\">SEC:<\/code>, <code class=\"\" data-line=\"\">PERF:<\/code><\/li>\n\n\n\n<li>Advantages: total flexibility.<\/li>\n\n\n\n<li>Disadvantages: lack of standardization and difficult integration with tools.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"beneficios\">Benefits<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">History that is understood<\/h3>\n\n\n\n<p>Instead of a chaotic &quot;final update,&quot; each commit provides context. Knowing whether a change fixes a bug or adds a new feature is immediate.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Emergency help<\/h3>\n\n\n\n<p>Friday at 6:00 PM. The program has broken. The client calls screaming. Hundreds of users receive 500 errors. You have to review 200 team commits to find out what caused it.<\/p>\n\n\n\n<p>You find one that says: <code class=\"\" data-line=\"\">backend modifications<\/code>You open it. Ten minutes later, you discover it only deletes imports and edits documentation.<\/p>\n\n\n\n<p>In a parallel universe, commits have clear prefixes. You filter with <code class=\"\" data-line=\"\">git log --grep=^fix<\/code> and you find the cause in seconds. The customer, relieved, even buys you a beer.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Real automation<\/h3>\n\n\n\n<p>Well-written messages allow you to generate changelogs, version tags, and automatic releases. You don&#039;t need to write all of that by hand. Git does it for you if you write well.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Improve collaboration<\/h3>\n\n\n\n<p>Your commit doesn&#039;t just tell you what you changed. It tells you why, where, and for what purpose. And that saves you unnecessary explanations with each pull request.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"ejemplos-narrativos\">Narrative examples<\/h2>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code class=\"language-git\" data-line=\"\">\n\nfix(api): fix expired token validation error feat(auth): allow multi-factor login docs(readme): add troubleshooting section refactor(service): split complex business logic test(payments): tests with failed cards chore(ci): update continuous integration workflow\n\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"recusros-recomendados\">Recommended resources<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.conventionalcommits.org\/\">Conventional Commits<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/seesparkbox.com\/foundry\/semantic_commit_messages\">Semantic Commit Messages (Sparkbox)<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/karma-runner.github.io\/1.0\/dev\/git-commit-msg.html\">Git Commit Msg (Karma)<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"conclusion\">Conclusion<\/h2>\n\n\n\n<p>A commit message is more than a technical obligation. It&#039;s part of a project&#039;s narrative. It&#039;s a communication tool. A way to work better.<\/p>\n\n\n\n<p>So next time you write <code class=\"\" data-line=\"\">git commit<\/code>Stop for a second. Think about your future self. Think about your team. Think about the desperate customer. And write the message you wish you had read in the midst of the chaos.<\/p>\n\n\n\n<p>Start today. Make commits that read like useful documentation. Because tomorrow\u2014or seven years from now\u2014you&#039;ll be thankful.<\/p>","protected":false},"excerpt":{"rendered":"<p>Tabla de contenidos Introducci\u00f3n Cada c\u00e9lula de tu cuerpo se regenera. En siete a\u00f1os, t\u00fa, literalmente, ya no ser\u00e1s la misma persona. \u00bfPiensas que dentro de todo ese tiempo vas a recordar para qu\u00e9 serv\u00eda ese commit que hiciste hoy? Ni t\u00fa, ni nadie. Y sin embargo, seguimos escribiendo mensajes de commit como si los&hellip;&nbsp;<a href=\"https:\/\/carlosarranz.es\/en\/semantic-commit-messages-mejora-tus-commits-y-tu-flujo-de-trabajo\/\" rel=\"bookmark\"><span class=\"screen-reader-text\">Semantic Commit Messages: Improve Your Commits and Workflow<\/span><\/a><\/p>","protected":false},"author":1,"featured_media":206,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"[\"title\",\"meta\",\"content\",\"tags\"]","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"categories":[5,4,6],"tags":[],"class_list":["post-125","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-buenas-practicas","category-desarrollo","category-git"],"_links":{"self":[{"href":"https:\/\/carlosarranz.es\/en\/wp-json\/wp\/v2\/posts\/125","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/carlosarranz.es\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/carlosarranz.es\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/carlosarranz.es\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/carlosarranz.es\/en\/wp-json\/wp\/v2\/comments?post=125"}],"version-history":[{"count":15,"href":"https:\/\/carlosarranz.es\/en\/wp-json\/wp\/v2\/posts\/125\/revisions"}],"predecessor-version":[{"id":179,"href":"https:\/\/carlosarranz.es\/en\/wp-json\/wp\/v2\/posts\/125\/revisions\/179"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/carlosarranz.es\/en\/wp-json\/wp\/v2\/media\/206"}],"wp:attachment":[{"href":"https:\/\/carlosarranz.es\/en\/wp-json\/wp\/v2\/media?parent=125"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/carlosarranz.es\/en\/wp-json\/wp\/v2\/categories?post=125"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/carlosarranz.es\/en\/wp-json\/wp\/v2\/tags?post=125"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}