WALUDO Ferramentas
DOCS.01 WALUDO DOCS

Memorando de Git

Referência de comandos comuns do Git para configuração, branches, commits, merges, desfazer alterações, repositórios remotos e Conventional Commits, com exemplos editáveis e copiáveis.

Comandos comuns

A maior parte dos comandos abaixo foi coletada em it-tools.tech e complementada com práticas de desenvolvimento do dia a dia.

O texto azul dentro dos blocos de código pode ser editado para alterar e copiar os exemplos rapidamente.

Configuração

Defina o nome de usuário e o e-mail globais:

bash
git config --global user.name "WaLudo"
git config --global user.email "waludo@gmail.com"

Começando um projeto

Inicialize um novo repositório Git:

bash
git init

Clone um repositório existente:

bash
git clone https://github.com/WaLudo/waludo-tools.git

Commits

Faça commit de todas as alterações rastreadas:

bash
git commit -am "feat: add two cups of coffee"

Faça commit de todas as alterações:

bash
git add .
git commit -m "feat: add five cups of coffee"

Adicione novas alterações ao commit anterior:

bash
git commit --amend --no-edit

Fiz uma alteração errada

Edite a mensagem do commit mais recente:

bash
git commit --amend

Desfaça o commit mais recente, mantendo as alterações:

bash
git reset HEAD~1

Desfaça os últimos N commits, mantendo as alterações:

bash
git reset HEAD~N

Desfaça o commit mais recente e descarte todas as alterações:

bash
git reset HEAD~1 --hard

Redefina a branch local para o estado remoto:

bash
git fetch origin
bash
git reset --hard origin/branch-name

Diversos

Renomeie a branch local master para main:

bash
git branch -m master main

Convenção de commits

Consulte a especificação Conventional Commits v1.0.0 em https://www.conventionalcommits.org/pt-br/v1.0.0/.

Valide seu commit

git commit -m "feat(scope): description"

Referência rápida de tipos

TipoDescrição
fixCorrige um bug
featIntroduz uma nova funcionalidade
buildAltera o sistema de build (dependências, interfaces externas, versão do Node etc.)
choreAltera itens que não são de negócio (processo de build, configuração de ferramentas etc.)
ciAltera a configuração de integração contínua (CI/CD)
docsAltera a documentação (README, documentação de API etc.)
styleAltera o estilo do código sem mudar a lógica
refactorRefatora o código sem alterar seu comportamento
perfMelhora o desempenho
testAltera casos de teste

Escopo

Você pode informar um escopo entre parênteses depois do tipo para fornecer contexto:

feat(parser): adds ability to parse arrays

Alterações incompatíveis

Um ponto de exclamação indica uma alteração incompatível e pode ser usado com qualquer tipo:

feat(api)!: send an email to the customer when a product is shipped

Incluir a expressão BREAKING CHANGE no rodapé também produz o mesmo efeito.

Corpo e rodapé em várias linhas

Exemplo de commit com corpo e rodapé em várias linhas:

fix: prevent racing of requests

Introduce a request id and a reference to latest request. Dismiss
incoming responses other than from latest request.

Remove timeouts which were used to mitigate the racing issue but are
obsolete now.

Reviewed-by: Z
Refs: #123

Especificação completa

As palavras-chave MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY e OPTIONAL devem ser interpretadas conforme a RFC 2119: https://www.ietf.org/rfc/rfc2119.txt.

  • Cada commit MUST começar com um tipo, seguido de escopo opcional, sinal de exclamação opcional e dois-pontos mais espaço finais obrigatórios
  • Uma nova funcionalidade MUST usar o tipo feat
  • Uma correção MUST usar o tipo fix
  • O escopo MAY vir depois do tipo; MUST ser um substantivo que descreva uma parte do código e estar entre parênteses, como fix(parser):
  • A descrição MUST vir imediatamente depois dos dois-pontos e do espaço do prefixo de tipo e escopo
  • Depois da descrição curta MAY haver um corpo mais longo, que MUST começar após uma linha em branco
  • Após outra linha em branco MAY haver um ou mais rodapés; cada rodapé MUST conter um token seguido de dois-pontos e espaço ou espaço e cerquilha como separador
  • O token do rodapé MUST usar hífen no lugar de espaços, por exemplo Acked-by; a exceção é BREAKING CHANGE
  • Uma alteração incompatível MUST ser marcada com exclamação no prefixo ou com o rodapé BREAKING CHANGE: descrição
  • Se a exclamação for usada, o rodapé MAY omitir BREAKING CHANGE: e a descrição SHOULD explicar a alteração
  • Outros tipos além de feat e fix MAY ser usados, por exemplo docs: updated ref docs.
  • Ferramentas que implementam a especificação MUST NOT diferenciar maiúsculas de minúsculas, exceto que BREAKING CHANGE MUST estar em maiúsculas
  • BREAKING-CHANGE MUST ser sinônimo de BREAKING CHANGE quando usado como token de rodapé