O Conventional Commits é uma convenção simples de mensagens de commit, que segue um conjunto de regras e que ajuda os projetos a terem um histórico de commit explícito e bem estruturado.
As regras são muito simples, como demonstrado abaixo temos um tipo de commit (type), o escopo/contexto do commit (scope) e o assunto/mensagem do commit (subject).
!type(?scope): !subject
<?body>
<?footer>Dessa maneira, ! indica os atributos obrigatórios e ? indica os atributos não obrigatórios.
feat: add hat wobble
^--^ ^------------^
| |
| +-> Summary in present tense.
|
+-------> Type: chore, docs, feat, fix, refactor, style, or test.| Type | Description |
|---|---|
| feat | introduz um novo recurso |
| fix | corrige um bug em sua base de código |
| chore | indica mudanças no projeto que não afeta o sistema ou arquivos de testes. São mudanças de desenvolvimento sem alteração do código de produção |
| refactor | refatorando o código de produção, por exemplo, renomeando uma variável |
| test | adicionando testes ausentes, testes de refatoração; nenhuma alteração no código de produção |
| build | usado para indicar mudanças que executaram o processo de construção do projeto ou dependências externas. |
| ci | utilizado para mudanças nos arquivos de configuração de CI |
| docs | alterações na documentação |
| style | formatação, falta de ponto e vírgula, etc; nenhuma alteração no código de produção |
| perf | indica uma alteração que melhorou a performance do sistema. |
| revert | indica a reverão de um commit anterior. |
Exemplo
git commit -m "chore: add npm"As palavras-chaves abaixo nesse documento, devem ser interpretados como descrito na RFC 2119. (Não use verbo no passado)
- "DEVE" ("MUST")
- "NÃO DEVE" ("MUST NOT")
- "OBRIGATÓRIO" ("REQUIRED")
- "DEVERÁ" ("SHALL")
- "NÃO DEVERÁ" ("SHALL NOT")
- "PODEM" ("SHOULD")
- "NÃO PODEM" ("SHOULD NOT")
- "RECOMENDADO" ("RECOMMENDED")
- "PODE" ("MAY")
- "OPCIONAL" ("OPTIONAL")
O GitHub fornece etiquetas padrão para todos os repositórios novos. Pode usar esses rótulos padrões para ajudar a criar um fluxo de trabalho padrão no repositório.
| Rótulo | Descrição |
|---|---|
| bug | Indica um problema inesperado ou um comportamento não intencional |
| documentation | Indica a necessidade de aprimoramentos ou adições à documentação |
| duplicate | Indica problemas, solicitações de pull ou discussões semelhantes |
| enhancement | Indica novas solicitações de recurso |
| good first issue | Indica um bom problema para contribuidores principiantes |
| help wanted | Indica que um mantenedor deseja ajudar em um problema ou uma pull request |
| invalid | Indica que um problema, uma solicitação de pull ou uma discussão não é mais relevante |
| question | Indica que um problema, uma solicitação de pull ou uma discussão precisa de mais informações |
| wontfix | Indica que o trabalho não continuará em um problema, solicitação de pull ou discussão |
git branchgit checkout -b developmentgit commit -m "Comment on my new branch's commit > development"git push --set-upstream origin developmentgit checkout developmentgit branchgit fetch --allgit reset --hard origin/maingit pull origin maingit checkout maingit branchgit merge developmentgit push -u origin maingit checkout developmentgit branchecho "# repository-app" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin git@github.com:rodrigocorreaecastro/repository-app.git
git push -u origin maingit remote add origin git@github.com:rodrigocorreaecastro/repository-app.git
git branch -M main
git push -u origin mainSe quiser ignorar um arquivo que você enviou no passado, você precisará excluir o arquivo do seu repositório e adicionar uma regra para ele no .gitignore. Usar a opção --cached com .git rm significa que o arquivo será excluído do seu repositório, mas permanecerá no seu diretório de trabalho como um arquivo ignorado.
$ echo debug.log >> .gitignore
$ git rm --cached debug.log
$ git commit -m "Start ignoring debug.log"