Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save rodrigocorreaecastro/dcf2672400b39b5e937e20b494f39012 to your computer and use it in GitHub Desktop.

Select an option

Save rodrigocorreaecastro/dcf2672400b39b5e937e20b494f39012 to your computer and use it in GitHub Desktop.
Como fazer os commits da forma correta

Conventional Commits

O que é?

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.

Como utilizar

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")

Messagens exemplo

message-commit

Links

Conventional Commits

semantic_commit_messages

conventional-commits-pattern

Sobre as etiquetas padrão

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

See all available branches

git branch

Open a new branch

git checkout -b development

Then, when you want to upload the new branch, make the commits:

git commit -m "Comment on my new branch's commit > development"

Actually uploading the commit:

git push --set-upstream origin development

Back to development

git checkout development

Confirms that the branch is back in development.

git branch

Manter tudo igual ao ultimo commit valido no main

git fetch --all
git reset --hard origin/main

Merge

Step 1: Clone the repository or update your local repository with the latest changes.

git pull origin main

Step 2: Switch to the base branch of the pull request.

git checkout main

Step 3: Confirm the current branch.

git branch

Step 4: Merge the head branch into the base branch.

git merge development

Step 5: Push the changes.

git push -u origin main

Step 6: Back to development

git checkout development

Step 7: Confirms that the branch is back in development.

git branch

Create a new repository on the command line

echo "# 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 main

Push an existing repository from the command line

git remote add origin git@github.com:rodrigocorreaecastro/repository-app.git
git branch -M main
git push -u origin main

Ignorando um arquivo previamente confirmado

Se 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"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment