Padronização de commit com(Commitlint、Husky e Commitizen)

2025-05-28

Padronização de commit com(Commitlint、Husky e Commitizen)

介绍了有关历史悠久的书籍的信息,并介绍了有关 Git 的管理和手册。

📌 索引

  • 介绍
  • 原子提交
  • Padronização dos commits
    • 实践中的常规提交
    • 语义版本控制 (Versionamento Semântico)
  • Commitlint
  • 沙哑
  • 承诺者
  • 作为图书馆的安装和配置
    • 安装或 commitlint
    • Instalando 或哈士奇
    • 安装或提交
  • 菲纳利赞多

✨ 介绍

Sem dúvidas uma das ferramentas mais importantes para uma pessoa desenvolvedora é o Git.我们将继续讨论我们的版本,并将其历史作为替代品。

git cria uma linha do tempo das modificações em nosso projeto e cada ponto nessa linha do tempo é definido por um commit, que é o ato de empacotar aquelas alterações que foram feitas.

Ao criar um commit, semper precisamos inserir uma mensagem para o mesmo, que de preência seja curta, objetiva e descritiva.当您使用 Git 时,您可能会担心自己提交的问题,但也没有想到。

在最初的时刻,我对 Git 的基本功能很感兴趣,并与有关原子提交和提交人员的相关实践进行了讨论。

启动上下文作为实际应用程序和图书馆的使用,以帮助您进行提交并配置安装和配置图书馆的顺序。德萨·曼内拉(Dessa maneira),我可以通过实践来回顾一下我们的作品并继续配置未来的项目。

✨ 原子提交

A prática de criar commits atômicosconsiste em criar um commit para cada modificação no projeto, 例如,vamos imaginar que estamos trabalhando em um projeto e fizemos duas ações:

  • 创造一个新的组件
  • 存在的改变

Emvez de criarmos um uneco commit paraguardar as alterações que fizemos, faremos dois commits, seguindo um padrão de commits atômicos.第一次提交时,我们将提交新组件的相关信息,第二次将作为现有组件的更改。

Dessa maneira conseguimos escrever uma mensagem mais descritiva para o commit, as ações na linha do tempo ficam mais descritivas e é mais prático de navegar pelos commits Visualizando as modificações.如果没有项目错误,则可以轻松地进行提交并恢复到原来的状态。

✨ Padronização dos 提交

在其他重要的实践中,在前面的比赛中,我们会为孩子们所做的事情提供帮助,并在接下来的时间里为孩子们提供帮助,并为他们提供帮助。

开始使用 Git 进行研究,想象一下存在的情况或提交的情况。想要了解节奏属性,请通过视频观看 Dev Soutinho 的视频,您可以通过以下方式链接:

在视频中,马里奥·法拉·索布雷·传统承诺(Mario fala sobre o Conventional Commits),您可以在专有网站上找到描述:“Uma especicação para dar umsignificado lawível às mensagens de commit para humanos e máquinas”。

基本的常规承诺是与历史上的历史记录相结合的约定,可以帮助您和家长轻松地进行承诺。请注意,在开发 Angular 时,请先进行会议并使用社区。

OBS:不存在 Angular criou 的约定,它是可以使用的。您可以通过链接获得兴趣

实践中的常规提交

请提交以下内容:



<tipo>[escopo opcional]: <descrição>

[corpo opcional]

[rodapé(s) opcional(is)]


Enter fullscreen mode Exit fullscreen mode

这篇文章以小文字、小标题、描述和最后的段落为主题。

需要注意的是,您可以使用以下命令列表:

  • 杂务: 不得更改产品、配置、配置和图书馆的配置。
  • 壮举:  São adições de novas funcionalidades ou de quaisquer outras novas implatações ao código。
  • 修复: 错误的相关定义和处理的本质。
  • 重构: 使用不合规的执行方式,改变最终的功能。
  • 文档: 包括或更改一些文档存档。
  • 性能: 改变性能或性能。
  • 风格: 改变表示代码的格式,例如:espaço em branco、formatação、ponto e vírgula ausente 等。
  • 测试:  Adicionando testes ausentes ou corrigindo testes Existentes nos processos de testes automatizados (TDD)。
  • 构建:  Alterações que afetam o sistema de construção ou dependentências externas(示例:gulp、broccoli、npm)。
  • ci:使用 CI 配置脚本(例如:Travis、Circle、BrowserStack、SauceLabs)。
  • 环境: 使用配置过程中的修改描述或附加信息以及连续集成 (CI) 的方法,以及容器配置中的参数。

承诺示例:

  • 琐事:添加 commitlint 和 husky
  • 杂务(eslint):obrigar o uso de aspas duplas no jsx
  • 重构:refatorando a tipagem
  • 壮举:添加 axios / Buscando 和 tratando os bados
  • 壮举(页面/主页): criando o roteamentento 没有下一个

我们可以轻松地完成历史的闲暇,并致力于实现这一目标。如果没有项目,请尝试 6 次项目。 com os承诺padronizados,ao voltar a mexer nele,fica muito mais fácil lembrar quais foram suas ultimas alterações。

OBS: eu já fiquei perdido no meu próprio código em mais antigos e isso acontece porque ao longo do tempo evoluímos nosso código e adotamos novosábitos de escrita, ao ponto de não reconhecermos nosso próprio código de meses atrás.

有关常规提交的概述,请参阅以下部分:

✨ 语义版本控制 (Versionamento Semântico)

没有关于 Mario 的视频,Dev Soutinho 可以在 cima 中使用特定的常规提交,并且可以使用术语“语义版本控制”。

Ele padroniza o versionamento das bibliotecas que usamos no dia a dia.说明,请注意以下数字或名称,以便安装项目,本地化没有 arquivo package.json,例如:



"dependencies": {
    "@chakra-ui/react": "^1.6.2",
    "@emotion/react": "^11",
    "@emotion/styled": "^11",
    "framer-motion": "^4",
    "next": "10.2.3",
    "react": "17.0.2",
    "react-dom": "17.0.2"
  }


Enter fullscreen mode Exit fullscreen mode

语义版本控制功能非常重要,可以在多种情况下使用。此外,我们还讨论了图书馆的主要问题,以及解决图书馆问题的全部内容。这是一个关于生活开发的一系列内容。

✨ Commitlint

Entendemos o Conventional Commits,mas nada garante que vamos respeitar as regras imppostas, pois, mesmo trabalhando sozinho em um projeto, pode ser queçamos de seguir o padrão que foi definido.

在提交过程中,我们会验证提交过程中的实际情况,以明确定义使用 Angular 时,您可以改变自己的方式,也可以使用我们自己的方式。

提交前,请先阅读有关验证的图书馆信息。如果您在任何季节都犯了错误,请执行以下操作,但不会出现终端错误。

✨哈士奇

哈士奇啊,你可以用它来喂它,或者用它来喂它。 Os ganchos são ações que vão ser disparadas em finados momentos。 Nesse caso, vamos criar um gancho para ser disparado antes de um commit Ser inicializado。

Dessa maneira,semper que fizermos um commit,vamos configurar o Husky para executar o Commitlint and verificar se a mensagem do commit está seguindo os padrões recomendados.

它是自动化的验证过程,并且不需要手动操作。 Mesmo com o Commitlint, pode ser que você esqueça de fazer a verificação e não queremos que isso aconteça, mas dessa maneira nenhum commit com a mensagem errada vai passar.

✨ 承诺

Chegamos na ultima biblioteca que iremos utilizar。

O Commitizen éuma biblioteca que vai nos ajudar os commits seguindo or padrão do Conventional Commit.如果没有终端,您可以通过以下方式获取待办事项: 提交提示和说明:

添加提交

在新的装修风格中,装饰风格的节奏和不精确的咨询文件是授予用户资格的。这是我的图书馆的全部内容。

Iremos criar um script que podemos rodar semper que quisermos fazer um commit guiado。 Dessa maneira, so precisamos seguir o passo que a passo que a biblioteca Implementa and geraremos um commit dentro do padrão.

无论何时,只要安装正确,就可以准确地执行脚本。

✨ 作为图书馆安装和配置

需要安装图书馆项目。下一步是打字稿:

Ou é só criar um projeto simples com o yarn ou npm, abrindo uma Pasta no seu editor e rodando esse comando noterminal:



yarn init -y

# ou 

npm init -y


Enter fullscreen mode Exit fullscreen mode

启动项目后,我们将把它安装为图书馆,所有安装都依赖于开发,但我们没有环境环境。

✨ 安装或提交



# Instalando e configurando o commitlint
yarn add @commitlint/config-conventional @commitlint/cli -D

echo "module.exports = { extends: ['@commitlint/config-conventional'] };" > commitlint.config.js


Enter fullscreen mode Exit fullscreen mode

如果您在 Windows 上遇到了错误,那么您可能会遇到这样的问题:

  • commitlint.config.js

E adicionar esse conteúdo dentro:

  • module.exports = {扩展:['@commitlint/config-conventional']}

Podemos testar pra ver se deu do certo, o primeiro teste precisa gerar um erro porque não está seguindo o padrão do Conventional Commits. O segundo teste deve passar。



# Para testar a biblioteca
echo "teste" | yarn commitlint

echo "feat: teste" | yarn commitlint


Enter fullscreen mode Exit fullscreen mode

✨ Instalando o husky

没有网站承诺将其作为 husky também、com Yarn 或 npm 的安装说明。



# instalando Husky v6
yarn add husky -D

# ativando os hooks
yarn husky install

# Para ativar os hooks automaticamente após a instalação
"scripts": {
  "prepare": "husky install"
}

# Add hook que vai disparar o commitlint
yarn husky add .husky/commit-msg 'yarn commitlint --edit $1'


Enter fullscreen mode Exit fullscreen mode

重要的是要准备好 package.json 的脚本,然后进行比较,然后再从 GitHub 上的项目中删除,然后再使用该功能,然后再使用命令手册yarn husky install。 com o 脚本,可以自动安装。

Agora Podemos fazer um commit para verificar se está tudo certo。



# Primeiro precisamos adicionar os arquivos para serem commitados
git add .

# Vamos fazer o commit falhar para ver se tudo está funcionando
# Se o commit passar, algum passo até aqui deu errado
git commit -m "qualquer coisa"

# Agora vamos fazer o commit corretamente, nesse caso eu vou usar o tipo chore
# Por se tratar de uma configuração no ambiente de desenvolvimento
git commit -m "chore: add commitlint e husky"


Enter fullscreen mode Exit fullscreen mode

✨ 立即安装或提交



# Instalando o commitizen
yarn add commitizen -D

# Criando a configuração
yarn commitizen init cz-conventional-changelog --yarn --dev --exact

# Add um script no package.json para disparar o commitizen
"scripts": {
  "commit": "git-cz"
}


Enter fullscreen mode Exit fullscreen mode

通过安装和配置图书馆,您可以提交相关内容并完成相关操作。



# Primeiro, precisamos adicionar os arquivos para serem commitados
git add .

# Agora vamos executar o script para iniciar a biblioteca
yarn commit


Enter fullscreen mode Exit fullscreen mode

首先打开一个图书馆,然后再继续:

1)选择您要提交的更改类型:(使用箭头键)

Selecione o tipo de mudança que você está realizando:(用作 teclas de seta)

  • 使用时请输入参数选择。

2)此次变更的范围是什么(例如组件或文件名):(按回车键跳过)

Qual é o escopo desta mudança (por exemplo, componente ou nome do arquivo): (pressione Enter para pular)

  • 示例:杂务(eslint):obrigar 或 uso de aspas duplas no jsx。

如果您要进行修改,我们将提供以下信息,以供您参考。

3) 用祈使语气写一个简短的、关于变化的描述(最多 82 个字符):

Escreva uma descrição breve e imperativa da mudança(最多 82 个字符):

  • 使用 cima 示例、essa é a mensagem que sucede o dois pontos:obrigar 或 uso de aspas duplas no jsx

4)提供变更的更长描述:(按回车键跳过)

Forneça uma descrição mais longa da mudança: (pressione Enter para pular)

  • 在此之前,您可以根据上下文进行任意选择和其他操作,以便可以充分描述修改内容。

5) 是否有任何重大变化?(是/否)

是否存在其他重要的变化? (是/否)

  • 翻译后的内容是这样的,它是语义版本控制的兼容性问题,因此,我们可以通过回复来解决这个问题。

OBS:在任何季节的工作中,都没有终端和最常用的选项,请发送压缩输入,然后选择压缩输入,然后选择数字输入。

6) 此更改是否会影响任何未解决的问题?(是/否)

Essa mudança afeta algum Problema em aberto? (是/否)

  • 这篇文章是关于 GitHub 问题的,我的文章主要是关于 GitHub 上的问题,但我不想再讨论了,所以就直接输入了。

很快,我们就实现了。

Podemos digitalar 或comando git lognoterminal para ver a lista com os ultimos commits, e em primeiro lugar vai estar or commit gerado pelo commitizen。

✨Finalizando

新的实践不精确,并且不存在任何开发项目中的问题。逐渐测试并分析上下文中的感受。永远在研究项目中进行新的测试。

当人们使用英语时,Uma outra prática interessante é escrever。在英语方面,我确实遇到了困难,在葡萄牙语中,我们首先要进行一些项目,以了解历史。

Espero que esse artigo tenha somado para você de alguma forma。您可以通过 Linkedin 或 Instagram 与我联系反馈或trocar uma想法。请从GitHub上下载。

文章来源:https://dev.to/vitordevsp/padronizacao-de-commit-com-commitlint-husky-e-commitizen-3g1n
PREV
改变我人生的 7 个 Git 技巧
NEXT
新的 git 指南:我们已切换到常规提交