{"id":13257,"date":"2024-09-11T14:20:38","date_gmt":"2024-09-11T17:20:38","guid":{"rendered":"https:\/\/www.geekhunter.com/pt/blog\/?p=13257"},"modified":"2024-10-03T15:01:39","modified_gmt":"2024-10-03T18:01:39","slug":"implementar-o-commit-semantico","status":"publish","type":"post","link":"https:\/\/www.geekhunter.com/pt/blog\/implementar-o-commit-semantico\/","title":{"rendered":"Como implementar commits sem\u00e2nticos no seu fluxo de trabalho git"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Se voc\u00ea trabalha com Git em seus projetos, provavelmente j\u00e1 se deparou com a necessidade de criar commits claros e organizados. N\u00e3o \u00e9 segredo que as mensagens de commit s\u00e3o fundamentais para entender o hist\u00f3rico de mudan\u00e7as em um projeto, mas, muitas vezes, acabam virando uma bagun\u00e7a dif\u00edcil de seguir. \u00c9 a\u00ed que entra o <\/span><b>commit sem\u00e2ntico<\/b><span style=\"font-weight: 400;\">. Se voc\u00ea ainda n\u00e3o conhece, neste artigo vou te contar o que \u00e9 e como implement\u00e1-lo no seu <strong><a href=\"https:\/\/www.geekhunter.com\/pt\/blog\/comandos-git-mais-utilizados\/\">fluxo de trabalho com Git<\/a><\/strong>. Garanto que vai melhorar a clareza e a efici\u00eancia dos seus commits!<\/span><\/p>\n<h2><b>O que \u00e9 um commit sem\u00e2ntico?<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Antes de entrarmos nos detalhes sobre como implementar, <strong><a href=\"https:\/\/www.geekhunter.com\/pt\/blog\/o-que-e-commit-e-como-usar-commits-semanticos\/\">\u00e9 importante entender o que \u00e9<\/a><\/strong> um commit sem\u00e2ntico. Basicamente, \u00e9 uma conven\u00e7\u00e3o para estruturar as mensagens de commit de forma descritiva e consistente. Isso n\u00e3o s\u00f3 torna o hist\u00f3rico de mudan\u00e7as mais leg\u00edvel, como tamb\u00e9m facilita a automa\u00e7\u00e3o em ferramentas de integra\u00e7\u00e3o cont\u00ednua e deploy (CI\/CD).<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Um commit sem\u00e2ntico segue uma estrutura espec\u00edfica que inclui um tipo, um escopo opcional e uma breve descri\u00e7\u00e3o da mudan\u00e7a. Dessa forma, qualquer pessoa da equipe \u2014 ou at\u00e9 voc\u00ea mesmo \u2014 pode entender rapidamente o que foi feito em cada commit, sem precisar entrar a fundo no c\u00f3digo.<\/span><\/p>\n<h2><b>Estrutura de um commit sem\u00e2ntico<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">A estrutura b\u00e1sica de um commit sem\u00e2ntico segue este formato: &lt;tipo&gt;(&lt;escopo&gt;): &lt;descri\u00e7\u00e3o&gt;<\/span><\/p>\n<p><b>Tipo:<\/b><span style=\"font-weight: 400;\"> Descreve o tipo de mudan\u00e7a feita. Alguns exemplos comuns incluem:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">feat<\/span><span style=\"font-weight: 400;\">: Nova funcionalidade ou recurso.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">fix<\/span><span style=\"font-weight: 400;\">: Corre\u00e7\u00e3o de bug.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">docs<\/span><span style=\"font-weight: 400;\">: Mudan\u00e7as na documenta\u00e7\u00e3o.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">style<\/span><span style=\"font-weight: 400;\">: Mudan\u00e7as de formata\u00e7\u00e3o ou estilo do c\u00f3digo (sem alterar a l\u00f3gica).<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">refactor<\/span><span style=\"font-weight: 400;\">: Altera\u00e7\u00f5es no c\u00f3digo que n\u00e3o corrigem erros nem adicionam funcionalidades.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">test<\/span><span style=\"font-weight: 400;\">: Adi\u00e7\u00e3o ou modifica\u00e7\u00e3o de testes.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">chore<\/span><span style=\"font-weight: 400;\">: Tarefas de manuten\u00e7\u00e3o do projeto, como atualiza\u00e7\u00e3o de depend\u00eancias.<\/span><\/li>\n<\/ul>\n<p><b>Escopo (opcional):<\/b><span style=\"font-weight: 400;\"> Descreve a parte do projeto que est\u00e1 sendo modificada, por exemplo, um m\u00f3dulo ou fun\u00e7\u00e3o.<\/span><\/p>\n<p><b>Descri\u00e7\u00e3o:<\/b><span style=\"font-weight: 400;\"> Deve ser breve e precisa, explicando o que foi feito naquele commit.<\/span><\/p>\n<h4><b>Exemplo de um commit sem\u00e2ntico: feat(api): adicionar endpoint para cria\u00e7\u00e3o de usu\u00e1rios<\/b><\/h4>\n<p><span style=\"font-weight: 400;\">Neste exemplo, <\/span><span style=\"font-weight: 400;\">feat<\/span><span style=\"font-weight: 400;\"> indica que \u00e9 uma nova funcionalidade, <\/span><span style=\"font-weight: 400;\">api<\/span><span style=\"font-weight: 400;\"> descreve o escopo, e a descri\u00e7\u00e3o detalha a mudan\u00e7a feita.<\/span><\/p>\n<h2><b>Por que usar commits sem\u00e2nticos?<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Voc\u00ea pode estar se perguntando por que adotar essa conven\u00e7\u00e3o se seus commits j\u00e1 funcionam bem. Aqui est\u00e3o algumas raz\u00f5es pelas quais usar <\/span><b>commit sem\u00e2ntico<\/b><span style=\"font-weight: 400;\"> pode fazer a diferen\u00e7a:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Clareza no hist\u00f3rico do Git:<\/b><span style=\"font-weight: 400;\"> Os commits sem\u00e2nticos fornecem uma estrutura f\u00e1cil de ler. Qualquer desenvolvedor que olhar o hist\u00f3rico pode entender rapidamente quais mudan\u00e7as foram feitas e por qu\u00ea.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Melhoria nas revis\u00f5es de c\u00f3digo:<\/b><span style=\"font-weight: 400;\"> Revisores podem se concentrar nas mudan\u00e7as importantes, sem se perder em commits confusos ou mal escritos.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Automa\u00e7\u00e3o mais f\u00e1cil:<\/b><span style=\"font-weight: 400;\"> Se voc\u00ea usa ferramentas como <\/span><span style=\"font-weight: 400;\">semantic-release<\/span><span style=\"font-weight: 400;\">, os commits sem\u00e2nticos permitem automatizar a gera\u00e7\u00e3o de vers\u00f5es, changelogs e deploys.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Comunica\u00e7\u00e3o eficiente na equipe:<\/b><span style=\"font-weight: 400;\"> Quando voc\u00ea trabalha em equipe, a consist\u00eancia nas mensagens de commit melhora a comunica\u00e7\u00e3o e evita mal-entendidos.<\/span><\/li>\n<\/ul>\n<h2><b>Implementando commits sem\u00e2nticos no seu fluxo de trabalho<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Agora que voc\u00ea j\u00e1 sabe o que s\u00e3o e por que s\u00e3o \u00fateis, vamos ver como voc\u00ea pode implementar commits sem\u00e2nticos no seu fluxo de trabalho com Git.<\/span><\/p>\n<h3><b>1. Configure um linter de commits<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Uma das maneiras mais eficazes de garantir que seus commits sigam a conven\u00e7\u00e3o sem\u00e2ntica \u00e9 usando um linter de commits, como o <\/span><span style=\"font-weight: 400;\">commitlint<\/span><span style=\"font-weight: 400;\">. Essa ferramenta verifica o formato das suas mensagens de commit e garante que estejam dentro do padr\u00e3o.<\/span><\/p>\n<h4><b>Instalando o <\/b><b>commitlint<\/b><b>:<\/b><\/h4>\n<p><span style=\"font-weight: 400;\">Voc\u00ea pode configurar o <\/span><span style=\"font-weight: 400;\">commitlint<\/span><span style=\"font-weight: 400;\"> facilmente se estiver usando Node.js no seu projeto. Siga estes passos:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Instale o <\/span><span style=\"font-weight: 400;\">commitlint<\/span><span style=\"font-weight: 400;\"> e sua configura\u00e7\u00e3o convencional: npm install &#8211;save-dev @commitlint\/config-conventional @commitlint\/cli<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Crie um arquivo de configura\u00e7\u00e3o chamado <\/span><span style=\"font-weight: 400;\">commitlint.config.js<\/span><span style=\"font-weight: 400;\"> na raiz do seu projeto: module.exports = { extends: [&#8216;@commitlint\/config-conventional&#8217;] };<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Certifique-se de que as mensagens de commit sejam verificadas executando o <\/span><span style=\"font-weight: 400;\">commitlint<\/span><span style=\"font-weight: 400;\"> como parte dos hooks do Git. Voc\u00ea pode fazer isso com o <\/span><span style=\"font-weight: 400;\">Husky<\/span><span style=\"font-weight: 400;\">, uma ferramenta que facilita a execu\u00e7\u00e3o de scripts de Git.<\/span><\/li>\n<\/ol>\n<h4><b>Instalando o <\/b><b>husky<\/b><b>:<\/b><\/h4>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Instale o husky no seu projeto: npm install husky &#8211;save-dev<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Configure o <\/span><span style=\"font-weight: 400;\">husky<\/span><span style=\"font-weight: 400;\"> para ser executado antes de fazer um commit:\u00a0<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">npx husky install<\/span><\/p>\n<p><span style=\"font-weight: 400;\">npx husky add .husky\/commit-msg &#8216;npx &#8211;no-install commitlint &#8211;edit &#8220;$1&#8243;&#8216;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">A partir de agora, qualquer mensagem de commit que n\u00e3o siga a conven\u00e7\u00e3o ser\u00e1 bloqueada at\u00e9 que seja corrigida.<\/span><\/p>\n<h3><b>2. Defina uma conven\u00e7\u00e3o com sua equipe<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Se voc\u00ea trabalha em equipe, \u00e9 importante que todos sigam as mesmas regras. Re\u00fana-se com seus colegas para definir quais tipos de commit usar\u00e3o e garantir que todos estejam de acordo. Isso facilitar\u00e1 a integra\u00e7\u00e3o dos commits sem\u00e2nticos no fluxo de trabalho di\u00e1rio.<\/span><\/p>\n<h3><b>3. Automatize a gera\u00e7\u00e3o de vers\u00f5es<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Uma vez que voc\u00ea tenha o commit semantico implementado, pode automatizar ainda mais seu processo de desenvolvimento. Ferramentas como o <\/span><span style=\"font-weight: 400;\">semantic-release<\/span><span style=\"font-weight: 400;\"> permitem que voc\u00ea gere novas vers\u00f5es do seu projeto automaticamente, com base nos tipos de commit.<\/span><\/p>\n<h4><b>Instalando o <\/b><b>semantic-release<\/b><b>:<\/b><\/h4>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Instale o <\/span><span style=\"font-weight: 400;\">semantic-release<\/span><span style=\"font-weight: 400;\">: npm install &#8211;save-dev semantic-release<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Configure o <\/span><span style=\"font-weight: 400;\">semantic-release<\/span><span style=\"font-weight: 400;\"> no seu projeto. Por exemplo, em um arquivo <\/span><span style=\"font-weight: 400;\">.releaserc<\/span><span style=\"font-weight: 400;\">, voc\u00ea pode definir a estrat\u00e9gia de lan\u00e7amento:<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">{<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0&#8220;branches&#8221;: [&#8220;main&#8221;],<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0&#8220;plugins&#8221;: [<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0&#8220;@semantic-release\/commit-analyzer&#8221;,<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0&#8220;@semantic-release\/release-notes-generator&#8221;,<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0&#8220;@semantic-release\/npm&#8221;,<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0&#8220;@semantic-release\/github&#8221;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0]<\/span><\/p>\n<p><span style=\"font-weight: 400;\">}<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Com essa configura\u00e7\u00e3o, cada vez que voc\u00ea fizer um commit com uma mensagem sem\u00e2ntica, o <\/span><span style=\"font-weight: 400;\">semantic-release<\/span><span style=\"font-weight: 400;\"> determinar\u00e1 se deve criar uma nova vers\u00e3o, atualizar o changelog e publicar o pacote automaticamente.<\/span><\/p>\n<h2><b>Melhores pr\u00e1ticas para usar commits sem\u00e2nticos<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Para que sua implementa\u00e7\u00e3o de commits sem\u00e2nticos seja o mais eficaz poss\u00edvel, aqui est\u00e3o algumas melhores pr\u00e1ticas:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Fa\u00e7a commits pequenos e focados:<\/b><span style=\"font-weight: 400;\"> Cada commit deve representar uma mudan\u00e7a espec\u00edfica. Evite fazer commits que incluam v\u00e1rias mudan\u00e7as n\u00e3o relacionadas.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Use o tipo correto:<\/b><span style=\"font-weight: 400;\"> Nem toda altera\u00e7\u00e3o \u00e9 uma nova funcionalidade ou corre\u00e7\u00e3o de bug. Use o tipo de commit que melhor descreva sua altera\u00e7\u00e3o.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Seja consistente:<\/b><span style=\"font-weight: 400;\"> Se estiver em uma equipe, garanta que todos sigam a mesma conven\u00e7\u00e3o de mensagens de commit.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>N\u00e3o abuse dos commits do tipo <\/b><b>chore<\/b><b>:<\/b><span style=\"font-weight: 400;\"> Embora seja tentador usar <\/span><span style=\"font-weight: 400;\">chore<\/span><span style=\"font-weight: 400;\"> para qualquer tarefa pequena, tente ser mais espec\u00edfico sempre que poss\u00edvel.<\/span><\/li>\n<\/ol>\n<h2><b>Conclus\u00e3o<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Implementar <\/span><b>commits sem\u00e2nticos<\/b><span style=\"font-weight: 400;\"> pode parecer um pequeno passo, mas tem um impacto significativo na qualidade e organiza\u00e7\u00e3o do seu fluxo de trabalho com Git. N\u00e3o s\u00f3 melhora a clareza e a consist\u00eancia no hist\u00f3rico de commits, como tamb\u00e9m permite automatizar partes cruciais do processo de desenvolvimento, como a gera\u00e7\u00e3o de vers\u00f5es. Ent\u00e3o, n\u00e3o hesite em adotar essa pr\u00e1tica e veja como ela pode melhorar a colabora\u00e7\u00e3o na sua equipe!<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Se voc\u00ea trabalha com Git em seus projetos, provavelmente j\u00e1 se deparou com a necessidade de criar commits claros e organizados. N\u00e3o \u00e9 segredo que as mensagens de commit s\u00e3o fundamentais para entender o hist\u00f3rico de mudan\u00e7as em um projeto, mas, muitas vezes, acabam virando uma bagun\u00e7a dif\u00edcil de seguir. \u00c9 a\u00ed que entra o [&hellip;]<\/p>\n","protected":false},"author":167,"featured_media":13258,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[18],"tags":[],"class_list":["post-13257","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-desenvolvimiento-de-software"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.5 (Yoast SEO v28.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Como implementar o commit sem\u00e2ntico e otimizar seu workflow<\/title>\n<meta name=\"description\" content=\"Aprenda o que \u00e9 commit sem\u00e2ntico e como implement\u00e1-lo no seu fluxo de trabalho Git para melhorar o automa\u00e7\u00e3o do seu projeto.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.geekhunter.com\/pt\/blog\/implementar-o-commit-semantico\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Como implementar commits sem\u00e2nticos no seu fluxo de trabalho git\" \/>\n<meta property=\"og:description\" content=\"Se voc\u00ea trabalha com Git em seus projetos, provavelmente j\u00e1 se deparou com a necessidade de criar commits claros e organizados. N\u00e3o \u00e9 segredo que as\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.geekhunter.com\/pt\/blog\/implementar-o-commit-semantico\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Geekhunter\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/geekhunterbr\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-09-11T17:20:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-10-03T18:01:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2024\/09\/conventional_commits.png\" \/>\n\t<meta property=\"og:image:width\" content=\"764\" \/>\n\t<meta property=\"og:image:height\" content=\"400\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Geekhunter\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@geekhunterbr\" \/>\n<meta name=\"twitter:site\" content=\"@geekhunterbr\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Geekhunter\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/implementar-o-commit-semantico\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/implementar-o-commit-semantico\\\/\"},\"author\":{\"name\":\"Geekhunter\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#\\\/schema\\\/person\\\/9f62b173345139f7bbdaf55312c3d400\"},\"headline\":\"Como implementar commits sem\u00e2nticos no seu fluxo de trabalho git\",\"datePublished\":\"2024-09-11T17:20:38+00:00\",\"dateModified\":\"2024-10-03T18:01:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/implementar-o-commit-semantico\\\/\"},\"wordCount\":1179,\"publisher\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/implementar-o-commit-semantico\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/conventional_commits.png\",\"articleSection\":[\"Desenvolvimiento de software\"],\"inLanguage\":\"pt-BR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/implementar-o-commit-semantico\\\/\",\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/implementar-o-commit-semantico\\\/\",\"name\":\"Como implementar o commit sem\u00e2ntico e otimizar seu workflow\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/implementar-o-commit-semantico\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/implementar-o-commit-semantico\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/conventional_commits.png\",\"datePublished\":\"2024-09-11T17:20:38+00:00\",\"dateModified\":\"2024-10-03T18:01:39+00:00\",\"description\":\"Aprenda o que \u00e9 commit sem\u00e2ntico e como implement\u00e1-lo no seu fluxo de trabalho Git para melhorar o automa\u00e7\u00e3o do seu projeto.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/implementar-o-commit-semantico\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/implementar-o-commit-semantico\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/implementar-o-commit-semantico\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/conventional_commits.png\",\"contentUrl\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/wp-content\\\/uploads\\\/2024\\\/09\\\/conventional_commits.png\",\"width\":764,\"height\":400,\"caption\":\"commit sem\u00e2ntico\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/implementar-o-commit-semantico\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mundo TI\",\"item\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/category\\\/mundo-ti\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Desenvolvimiento de software\",\"item\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/category\\\/mundo-ti\\\/desenvolvimiento-de-software\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Como implementar commits sem\u00e2nticos no seu fluxo de trabalho git\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/\",\"name\":\"Blog de TI\",\"description\":\"Dicas para o RH e profissionais da \u00e1rea TI\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#organization\",\"name\":\"GeekHunter\",\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/icon-1.png\",\"contentUrl\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/icon-1.png\",\"width\":300,\"height\":300,\"caption\":\"GeekHunter\"},\"image\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/geekhunterbr\\\/\",\"https:\\\/\\\/x.com\\\/geekhunterbr\",\"https:\\\/\\\/www.instagram.com\\\/geekhunterbr\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/geekhunter-brasil\\\/\",\"https:\\\/\\\/www.youtube.com\\\/@GeekHunterOfficial\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#\\\/schema\\\/person\\\/9f62b173345139f7bbdaf55312c3d400\",\"name\":\"Geekhunter\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/09a0f76de8cf1fa3621f8b73417ce43344b42e1324a07a9af24f57c5eef49840?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/09a0f76de8cf1fa3621f8b73417ce43344b42e1324a07a9af24f57c5eef49840?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/09a0f76de8cf1fa3621f8b73417ce43344b42e1324a07a9af24f57c5eef49840?s=96&d=mm&r=g\",\"caption\":\"Geekhunter\"},\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/author\\\/matias\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Como implementar o commit sem\u00e2ntico e otimizar seu workflow","description":"Aprenda o que \u00e9 commit sem\u00e2ntico e como implement\u00e1-lo no seu fluxo de trabalho Git para melhorar o automa\u00e7\u00e3o do seu projeto.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.geekhunter.com\/pt\/blog\/implementar-o-commit-semantico\/","og_locale":"pt_BR","og_type":"article","og_title":"Como implementar commits sem\u00e2nticos no seu fluxo de trabalho git","og_description":"Se voc\u00ea trabalha com Git em seus projetos, provavelmente j\u00e1 se deparou com a necessidade de criar commits claros e organizados. N\u00e3o \u00e9 segredo que as","og_url":"https:\/\/www.geekhunter.com\/pt\/blog\/implementar-o-commit-semantico\/","og_site_name":"Blog Geekhunter","article_publisher":"https:\/\/www.facebook.com\/geekhunterbr\/","article_published_time":"2024-09-11T17:20:38+00:00","article_modified_time":"2024-10-03T18:01:39+00:00","og_image":[{"width":764,"height":400,"url":"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2024\/09\/conventional_commits.png","type":"image\/png"}],"author":"Geekhunter","twitter_card":"summary_large_image","twitter_creator":"@geekhunterbr","twitter_site":"@geekhunterbr","twitter_misc":{"Escrito por":"Geekhunter","Est. tempo de leitura":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/implementar-o-commit-semantico\/#article","isPartOf":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/implementar-o-commit-semantico\/"},"author":{"name":"Geekhunter","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#\/schema\/person\/9f62b173345139f7bbdaf55312c3d400"},"headline":"Como implementar commits sem\u00e2nticos no seu fluxo de trabalho git","datePublished":"2024-09-11T17:20:38+00:00","dateModified":"2024-10-03T18:01:39+00:00","mainEntityOfPage":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/implementar-o-commit-semantico\/"},"wordCount":1179,"publisher":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#organization"},"image":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/implementar-o-commit-semantico\/#primaryimage"},"thumbnailUrl":"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2024\/09\/conventional_commits.png","articleSection":["Desenvolvimiento de software"],"inLanguage":"pt-BR"},{"@type":"WebPage","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/implementar-o-commit-semantico\/","url":"https:\/\/www.geekhunter.com\/pt\/blog\/implementar-o-commit-semantico\/","name":"Como implementar o commit sem\u00e2ntico e otimizar seu workflow","isPartOf":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/implementar-o-commit-semantico\/#primaryimage"},"image":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/implementar-o-commit-semantico\/#primaryimage"},"thumbnailUrl":"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2024\/09\/conventional_commits.png","datePublished":"2024-09-11T17:20:38+00:00","dateModified":"2024-10-03T18:01:39+00:00","description":"Aprenda o que \u00e9 commit sem\u00e2ntico e como implement\u00e1-lo no seu fluxo de trabalho Git para melhorar o automa\u00e7\u00e3o do seu projeto.","breadcrumb":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/implementar-o-commit-semantico\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.geekhunter.com/pt/blog\/implementar-o-commit-semantico\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/implementar-o-commit-semantico\/#primaryimage","url":"https:\/\/www.geekhunter.com\/pt\/blog\/wp-content\/uploads\/2024\/09\/conventional_commits.png","contentUrl":"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2024\/09\/conventional_commits.png","width":764,"height":400,"caption":"commit sem\u00e2ntico"},{"@type":"BreadcrumbList","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/implementar-o-commit-semantico\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/www.geekhunter.com/pt/blog\/"},{"@type":"ListItem","position":2,"name":"Mundo TI","item":"https:\/\/www.geekhunter.com/pt/blog\/category\/mundo-ti\/"},{"@type":"ListItem","position":3,"name":"Desenvolvimiento de software","item":"https:\/\/www.geekhunter.com/pt/blog\/category\/mundo-ti\/desenvolvimiento-de-software\/"},{"@type":"ListItem","position":4,"name":"Como implementar commits sem\u00e2nticos no seu fluxo de trabalho git"}]},{"@type":"WebSite","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#website","url":"https:\/\/www.geekhunter.com\/pt\/blog\/","name":"Blog de TI","description":"Dicas para o RH e profissionais da \u00e1rea TI","publisher":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.geekhunter.com/pt/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#organization","name":"GeekHunter","url":"https:\/\/www.geekhunter.com\/pt\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.geekhunter.com\/pt\/blog\/wp-content\/uploads\/2024\/10\/icon-1.png","contentUrl":"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2024\/10\/icon-1.png","width":300,"height":300,"caption":"GeekHunter"},"image":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/geekhunterbr\/","https:\/\/x.com\/geekhunterbr","https:\/\/www.instagram.com\/geekhunterbr\/","https:\/\/www.linkedin.com\/company\/geekhunter-brasil\/","https:\/\/www.youtube.com\/@GeekHunterOfficial"]},{"@type":"Person","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#\/schema\/person\/9f62b173345139f7bbdaf55312c3d400","name":"Geekhunter","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/09a0f76de8cf1fa3621f8b73417ce43344b42e1324a07a9af24f57c5eef49840?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/09a0f76de8cf1fa3621f8b73417ce43344b42e1324a07a9af24f57c5eef49840?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/09a0f76de8cf1fa3621f8b73417ce43344b42e1324a07a9af24f57c5eef49840?s=96&d=mm&r=g","caption":"Geekhunter"},"url":"https:\/\/www.geekhunter.com\/pt\/blog\/author\/matias\/"}]}},"_links":{"self":[{"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/posts\/13257","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/comments?post=13257"}],"version-history":[{"count":0,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/posts\/13257\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/media\/13258"}],"wp:attachment":[{"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/media?parent=13257"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/categories?post=13257"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/tags?post=13257"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}