{"id":19188575,"url":"https://github.com/juniorlima22/padroes-e-nomenclaturas-no-git","last_synced_at":"2025-10-06T21:44:56.309Z","repository":{"id":110771472,"uuid":"602652789","full_name":"JuniorLima22/padroes-e-nomenclaturas-no-git","owner":"JuniorLima22","description":"Esse projeto consta com link's de pesquisas para padrões, nomenclaturas e fluxo de trabalho com Git.","archived":false,"fork":false,"pushed_at":"2023-11-16T15:20:35.000Z","size":1074,"stargazers_count":103,"open_issues_count":0,"forks_count":11,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-10T01:59:13.287Z","etag":null,"topics":["conversion","git","gitflow-workflow","github","version-control"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JuniorLima22.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"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}},"created_at":"2023-02-16T16:59:42.000Z","updated_at":"2025-04-05T06:12:31.000Z","dependencies_parsed_at":"2025-04-10T01:50:48.613Z","dependency_job_id":"cdb20564-0d6b-49f0-963e-81b570ad756a","html_url":"https://github.com/JuniorLima22/padroes-e-nomenclaturas-no-git","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/JuniorLima22/padroes-e-nomenclaturas-no-git","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuniorLima22%2Fpadroes-e-nomenclaturas-no-git","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuniorLima22%2Fpadroes-e-nomenclaturas-no-git/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuniorLima22%2Fpadroes-e-nomenclaturas-no-git/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuniorLima22%2Fpadroes-e-nomenclaturas-no-git/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JuniorLima22","download_url":"https://codeload.github.com/JuniorLima22/padroes-e-nomenclaturas-no-git/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuniorLima22%2Fpadroes-e-nomenclaturas-no-git/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278686637,"owners_count":26028325,"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","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["conversion","git","gitflow-workflow","github","version-control"],"created_at":"2024-11-09T11:25:21.681Z","updated_at":"2025-10-06T21:44:56.295Z","avatar_url":"https://github.com/JuniorLima22.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\" id=\"top\"\u003e\n    \u003cimg alt=\"Banner do Readme\" title=\"Banner do Readme\" src=\"./assets/img/banner.png\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003e Padrões e Nomenclaturas no Git \u003c/h1\u003e\n\n\u003c!-- \u003e Padrão pra quê? Faz de qualquer jeito que da certo... --\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"#branches\"\u003ePadrões Branches\u003c/a\u003e •\n    \u003ca href=\"#commits\"\u003ePadrões Commits\u003c/a\u003e •\n    \u003ca href=\"#fluxo-de-trabalho-com-git\"\u003eFluxo de Trabalho com GIT\u003c/a\u003e •\n    \u003ca href=\"#ferramentas-para-gerenciamento-git\"\u003eFerramentas\u003c/a\u003e •\n    \u003ca href=\"#referências\"\u003eReferências\u003c/a\u003e •\n    \u003ca href=\"#autor\"\u003eAutor\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n# Branches\n\n## Padrões nos nomes de branches\n\nEm termos de **padrões e nomenclaturas no Git**, esse ponto é importante mas não tão primordial assim. Mas acredito que é sempre sagaz ter um padrão de nomenclaturas e um nome explicativo nas branches.\n\nNomes de branches são compostos de 3 partes:\n\n1 — Prefixos ou categoria do branch. Prefixos pré-definidos para criar uma branch, segue abaixo a lista:\n\n* docs/ apenas mudanças de documentação;\n* feature/ O nome já diz também o que é, uma nova feature que será adicionada ao projeto, componente e afins;\n* fix/ a correção de um bug;\n* perf/ mudança de código focada em melhorar performance;\n* refactor/ mudança de código que não adiciona uma funcionalidade e também não corrigi um bug;\n* style/ mudanças no código que não afetam seu significado (espaço em branco, formatação, ponto e vírgula, etc);\n* test/ adicionar ou corrigir testes.\n* improvement/ Uma melhoria em algo já existente, seja de performance, de escrita, de layout, etc.\n\n2 — o que o branch faz em si.\n\n3 — Código da tarefa no Jira. Ex.: SI20-348.\n\nExemplos de alguns nomes de branches que podem existir em nossa aplicação:\n\n* docs/padronizacao-commits-branches-git-SI20-348\n* feat/cadastro-veiculos-SI20-123\n* refactor/edicao-colaboradores-SI20-355\n* fix/busca-checklists-SI20-232\n\nO código da tarefa no Jira é extremamente importante, ele ajuda autor e reviewer a localizarem o branch correto e também permite ao Jira linkar automaticamente um branch a uma tarefa, tornando o mesmo acessível a partir da tarefa:\n\n\u003cp align=\"center\"\u003e\n    \u003cimg alt=\"Card da tarefa no Jira\" title=\"Card da tarefa no Jira\" width=\"950\" src=\"./assets/img/card-jira.webp\" /\u003e\n\u003c/p\u003e\n\n# Commits\n\n## Por que eu devo escrever boas mensagens de commit?\n\n* Uma mensagem de commit para o Git bem redigida é a melhor maneira de comunicar o contexto de uma alteração para outros desenvolvedores que estejam trabalhando no projeto. De fato, até para o seu \"eu\" do futuro.\n\n* As mensagens de commit podem comunicar adequadamente o motivo de uma alteração ter sido feita. Entender isso torna o desenvolvimento e a colaboração mais eficazes.\n\nVocê já tentou executar o comando git log em um de seus projetos antigos para ver as mensagens de commit \"estranhas\" que você usava desde o início de um projeto? Pode ser difícil entender a razão pela qual algumas alterações foram feitas no passado. Você vai desejar ter lido esse artigo antes :).\n\n## Como escrever boas mensagens de commit\n\nExistem várias convenções usadas por equipes diferentes para escrever boas mensagens de commit. Descreverei aqui apenas algumas regras gerais e dicas para escrever mensagens de commit – você tem de decidir qual convenção deseja seguir. Se trabalha para uma empresa ou se contribui para o código aberto, é preciso se adaptar a convenção utilizada.\n\nAlgumas Convenções:\n\n* [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) A especificação Conventional Commits é uma convenção leve sobre as mensagens de commit.\n* [Angular Commit Message Guidelines](https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#-git-commit-guidelines) Diretrizes de mensagem de confirmação Angular.\n* [Udacity Git Commit](https://udacity.github.io/git-styleguide/) Udacity Git Commit Guia de estilo de mensagem\n* [Styleguides](https://gist.github.com/crissilvaeng/dfb5b14f8eb2c25df4fd8a49f4f03252) Mensagens de commit styleguide.\n\nPara criar um histórico de revisão útil, as equipes primeiro devem concordar quanto a uma convenção a ser utilizada nas mensagens de commit. Isso também se aplica a projetos pessoais.\n\n## Padrões nos nomes dos Commits\n\nEstrutura para um commit:\n\n```javascript\n\u003ctype\u003e(\u003cscope\u003e): \u003csubject\u003e\n\u003cBLANK LINE\u003e\n\u003cbody\u003e\n\u003cBLANK LINE\u003e\n\u003cfooter\u003e\n```\n\nVamos dissecá-la:\n\n1 — type ou prefixos do commit: podem ser os mesmos utilizados para criar branches.\n\n2 — scope: onde a alteração foi feita. Aqui, criamos nossos próprios scopes que, na maioria dos casos, refletem o nome de uma funcionalidade.\n\n3 — subject: um resumo do commit. Deve utilizar o imperativo, como: faz, adiciona, altera, muda e etc.\n\n4 — body: espaço utilizado para detalhar o que foi feito. É opcional.\n\n5 — footer: onde colocamos as PLs (códigos das tarefas no Jira) e também alguma breaking change.\n\nOnde tem `\u003cBLANK LINE\u003e` significa que temos que deixar uma linha em branco.\n\n## Prefixos dos Commits\n\n* docs: apenas mudanças de documentação;\n* feat: O nome já diz também o que é, uma nova feature que será adicionada ao projeto, componente e afins;\n* fix: a correção de um bug;\n* perf: mudança de código focada em melhorar performance;\n* refactor: mudança de código que não adiciona uma funcionalidade e também não corrigi um bug;\n* style: mudanças no código que não afetam seu significado (espaço em branco, formatação, ponto e vírgula, etc);\n* test: adicionar ou corrigir testes.\n* improvement: Uma melhoria em algo já existente, seja de performance, de escrita, de layout, etc.\n\n## Exemplo na prática\n\nAqui vou exemplificar uma sequência de alguns commits, comparando e mostrando a diferença entre apenas commitar e commitar usando commits semânticos:\n\n\u003cp align=\"center\"\u003e\u003csub\u003eExemplo de commit semantico\u003c/sub\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003cimg alt=\"Exemplo de commit semantico\" title=\"Exemplo de commit semantico\" width=\"550\" src=\"./assets/img/exemplo-commit-semantico.jpeg\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003cimg alt=\"Exemplo de commit semantico\" title=\"Exemplo de commit semantico\" width=\"950\" src=\"./assets/img/exemplo-commit-2.png\" /\u003e\n\u003c/p\u003e\n\n### Conclusão\n\nA parte mais importante de uma mensagem de commit é o fato de que ela deve ser clara e significativa. No final, escrever boas mensagens de commit demonstra que você é um bom colaborador. Os benefícios de escrever boas mensagens de commit não se limitam apenas à sua equipe, mas se estendem a você mesmo e a colaboradores no futuro.\n\n# Fluxo de trabalho com Git\n\nUma dúvida muito comum a quem começa a usar o Git de maneira mais ativa é como organizar as branches, afinal, são muitos os problemas que um projeto pode enfrentar: De bugs urgentes que devem ser corrigidos, a criação de inúmeras features em conjunto com releases agrupando os deploys relativos a essas features.\n\nMas...como organizar tudo?\n\n## Artigo com conceito sobre a metodologia de trabalho e organização\n\n* [Comparando fluxos de trabalho do Git](https://www.atlassian.com/br/git/tutorials/comparing-workflows) Este artigo compara fluxos de trabalho do Git: o que você deve saber.\n\n## GitHub Flow\n\n* [GitHub Flow](https://docs.github.com/pt/get-started/quickstart/github-flow) O fluxo de GitHub é um fluxo de trabalho leve e baseado no branch.\n\n\u003cp align=\"center\"\u003e\n    \u003cimg alt=\"GitHub Flow\" title=\"GitHub Flow\" width=\"900\" src=\"./assets/img/github-flow.png\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003cimg alt=\"GitHub Flow\" title=\"GitHub Flow\" width=\"900\" src=\"./assets/img/github-flow2.jpg\" /\u003e\n\u003c/p\u003e\n\n## Gitflow\n\nO Gitflow é um modelo alternativo de ramificação do Git que consiste no uso de ramificações de recursos e várias ramificações primárias.\n\n* [Git - GitFlow, usar ou não usar?](https://codigomaromba.com/2019/01/02/git-gitflow-usar-ou-nao-usar/) Este artigo aborda o conceito sobre a metodologia de trabalho e organização do Git Flow.\n* [Git Flow](https://fjorgemota.com/git-flow-uma-forma-legal-de-organizar-repositorios-git/) Uma forma legal de organizar repositórios git.\n* [Fluxo de trabalho de Gitflow](https://www.atlassian.com/br/git/tutorials/comparing-workflows/gitflow-workflow) O Gitflow é um modelo alternativo de ramificação do Git\n* [Git Flow - Alura](https://www.alura.com.br/artigos/git-flow-o-que-e-como-quando-utilizar) entenda o que é, como e quando utilizar.\n\n\u003cp align=\"center\"\u003e\n    \u003cimg alt=\"GitFlow\" title=\"GitFlow\" src=\"./assets/img/gitflow.png\" /\u003e\n\u003c/p\u003e\n\n## Trunk-based Development (Desenvolvimento Baseado em Tronco)\n\nO desenvolvimento baseado em tronco segue um ritmo rápido para entregar código à produção. Se o desenvolvimento baseado em tronco fosse como música, seria um staccato rápido — notas curtas e sucintas em rápida sucessão, com os commits de repositório sendo as notas. Manter commits e ramificações pequenas permite um ritmo mais rápido de merges e implementações.\n\nPequenas mudanças de um par de commits ou modificação de algumas linhas de código minimizam a sobrecarga cognitiva. É muito mais fácil para as equipes terem conversas significativas e tomar decisões rápidas ao revisar uma área limitada de código versus um conjunto extenso de alterações.\n\n* [Youtube Alura - Git Flow vs Desenvolvimento baseado em tronco](https://youtu.be/0jw8RpHuZ-Q) Git Flow vs Desenvolvimento baseado em tronco.\n* [Desenvolvimento baseado em tronco x Gitflow](https://forum.casadodesenvolvedor.com.br/topic/44817-trunk-based-development-x-gitflow/) Saiba por que essa prática de gerenciamento de controle de versão é prática comum entre as equipes de DevOps.\n* [Atlassian - Desenvolvimento baseado em tronco](https://www.atlassian.com/br/continuous-delivery/continuous-integration/trunk-based-development) Saiba por que essa prática de gerenciamento de controle de versão é prática comum entre as equipes de DevOps.\n\n* Principais características do trunk based development (desenvolvimento baseado em tronco)\n  * As ramificações devem ter ciclos de vida curto, ficando sempre perto da ramificação principal.\n  * Ter três ou menos ramificações ativas no repositório de código do aplicativo\n  * A ramificação principal sempre precisa estar em estado de pronto para deploy em produção.\n  * Permite a integração e revisão contínua de código.\n  * Realizar revisões de código assíncronas.\n  * Permite versões consecutivas de código de produção.\n  * Os hotfixes precisam ser criados a partir da ramificação principal e serem devolvidos à ramificação principal.\n  * Recomendado para aplicações: Micros serviços, single page application, Prova de conceito (POC), Sistemas distribuídos.\n  * É preciso ter um processo de integração contínua, com etapas de testes automatizados e validadores de qualidade de código.\n  * Desenvolvimento baseado em troncos e CI/CD.\n\nO desenvolvimento baseado em tronco é hoje em dia o padrão para equipes de engenharia de alto desempenho, pois define e mantém uma cadência de lançamento de software usando uma estratégia simplificada de ramificação do Git. Além disso, o desenvolvimento baseado no central oferece às equipes de engenharia mais flexibilidade e controle sobre como entregam software para o usuário final.\n\n\u003cp align=\"center\"\u003e\n    \u003cimg alt=\"Trunk Based Development\" title=\"Trunk Based Development\" width=\"700\" src=\"./assets/img/trunk-based-development.png\" /\u003e\n\u003c/p\u003e\n\n---\n\n## Ferramentas para gerenciamento GIT\n\n* Padronização Commits\n  * [Conventional Commits](https://marketplace.visualstudio.com/items?itemName=vivaxy.vscode-conventional-commits) Esta extensão do VS Code ajuda você a preencher a mensagem de commit de acordo com os [commits convencionais](https://www.conventionalcommits.org/en/v1.0.0/).\n  * [Commitizen CLI](https://github.com/commitizen/cz-cli) ou [Commitlint CLI](https://github.com/conventional-changelog/commitlint) Ao fazer um commit com o Commitizen ou Commitlint, você será solicitado a preencher todos os campos de commit obrigatórios no momento do commit.\n\n* Changelog\n  * [Changelog Generator](https://marketplace.visualstudio.com/items?itemName=axetroy.vscode-changelog-generator) Extensão do VS Code para gerar changelog.\n  * [Vscode Whatchanged](https://github.com/release-lab/vscode-whatchanged) Extensão do VS Code para gerar changelog.\n  * [Changelog Snippets](https://marketplace.visualstudio.com/items?itemName=dzgmelody.vscode-changelog-snippets) Extensão do VS Code com snippets de changelog.\n  * [Keep a Changelog](https://marketplace.visualstudio.com/items?itemName=RLNT.keep-a-changelog) Extensão do VS Code com snippets de changelog.\n\n* Versionamento\n  * [Versionamento Semântico 2.0.0](https://semver.org/lang/pt-BR/) Como uma solução para este problema proponho um conjunto simples de regras e requisitos que ditam como os números das versões são atribuídos e incrementados.\n\n* Gitflow\n  * [Git Flow](https://marketplace.visualstudio.com/items?itemName=Serhioromano.vscode-gitflow) Git FLow Support for VS Code.\n  * [Git Flow](https://marketplace.visualstudio.com/items?itemName=vector-of-bool.gitflow) Gitflow integration for VS Code.\n\n* Clientes Git GUI\n  * [Lista de Clientes Git GUI](https://www.hostinger.com.br/tutoriais/git-gui) Os Melhores Clientes Git GUI para Windows, Linux e Mac.\n  * [Git History](https://marketplace.visualstudio.com/items?itemName=donjayamanne.githistory) Extensão do VS Code, Histórico do Git, pesquisa e mais (incluindo git log).\n  * [Git Graph](https://marketplace.visualstudio.com/items?itemName=mhutchie.git-graph) Extensão do VS Code, Visualize um Git Graph do seu repositório e execute facilmente as ações do Git a partir do gráfico.\n  * [SourceTree](https://www.sourcetreeapp.com/) Simplicidade e poder em uma bela GUI Git para Mac e Windows (Atlassian).\n  * [Git Fork](https://git-fork.com/) Um cliente git rápido e amigável para Mac e Windows.\n  * [GitKraken](https://www.gitkraken.com/) Inclui uma GUI Git intuitiva e uma poderosa CLI Git para Linux, Mac e Windows.\n\n## Referências\n\n* [Git How To](https://githowto.com/pt-BR) é um tour guiado que passa pelos fundamentos de Git, inspirado pela premissa que saber sobre algo é fazê-lo.\n* [Padrões e nomenclaturas no Git](https://www.brunodulcetti.com/padroes-e-nomenclaturas-no-git/) Como você cria suas branches? E seus commits? Possui padrões? [Bruno Dulcetti](https://github.com/dulcetti) 👏🏻👏🏻\n* [Commitizen](https://github.com/commitizen/cz-cli) Ao confirmar com o Commitizen, você será solicitado a preencher todos os campos de confirmação obrigatórios no momento do commit.\n* [Nomenclatura para repositórios](https://qastack.com.br/programming/11947587/is-there-a-naming-convention-for-git-repositories) Existe uma convenção de nomenclatura para repositórios git?\n* [Como escrever boas mensagens de commit](https://www.freecodecamp.org/portuguese/news/como-escrever-boas-mensagens-de-commit-um-guia-pratico-do-git/) Como escrever boas mensagens de commit: um guia prático do Git\n* [Tudo o que você precisa saber sobre commits semânticos](https://ilegra.com/blog/tudo-o-que-voce-precisa-saber-sobre-commits-semanticos/) Como seguir boas práticas de versionamento de código!\n* [Prolog - Padrões de nomenclatura para branches e commits](https://medium.com/prolog-app/nossos-padr%C3%B5es-de-nomenclatura-para-branches-e-commits-fade8fd17106) Nossos padrões de nomenclatura para branches e commits\n* [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) A especificação Conventional Commits é uma convenção leve sobre as mensagens de commit.\n* [Git - GitFlow, usar ou não usar?](https://codigomaromba.com/2019/01/02/git-gitflow-usar-ou-nao-usar/) Este artigo aborda o conceito sobre a metodologia de trabalho e organização do Git Flow.\n* [Git Flow](https://fjorgemota.com/git-flow-uma-forma-legal-de-organizar-repositorios-git/) Uma forma legal de organizar repositórios git.\n\n### Autor\n\n\u003e Made with 💙 by JUNIOR LIMA 👋 \u003ca href=\"https://www.linkedin.com/in/JuniorLima22/\" target=\"_blank\"\u003eSee my LinkedIn\u003c/a\u003e • GitHub \u003ca href=\"https://github.com/JuniorLima22\" target=\"_blank\"\u003e@JuniorLima22\u003c/a\u003e\n\n\u003cp align=\"center\"\u003e\n\u003csub\u003e\u003ca href=\"#top\" align=\"center\"\u003e↑ voltar para o topo ↑\u003c/a\u003e\u003c/sub\u003e\n\u003c/p\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuniorlima22%2Fpadroes-e-nomenclaturas-no-git","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuniorlima22%2Fpadroes-e-nomenclaturas-no-git","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuniorlima22%2Fpadroes-e-nomenclaturas-no-git/lists"}