提交和传统提交更好地git
#javascript #教程 #编码 #git

为项目编写良好的提交消息可能具有挑战性。当项目扩展并涉及许多开发人员时,可能会出现格式和写作风格的不一致之处。我们可以通过使用Conventional Commits规范来解决此问题,并使用commitlint配置我们的项目来执行此标准。

用GIT初始化项目

如果您已经在GIT中设置了一个项目,则需要将此功能添加到,请跳过配置commitlint 的部分。否则,请按照以下步骤在新项目中测试此功能。

  1. 在您的计算机上创建一个新的空目录,名为 git_better_demo
  2. 导航到 git_better_demo 终端中的目录
  3. 运行命令git init以用git初始化此目录。这将创建一个名为 .git/的隐藏目录
  4. 运行命令npm init以使用NPM初始化此目录。将提示您有关您的存储库的详细信息。您提供的详细信息将添加到您的软件包中。JSON,可以根据需要进行修改。要接受所有默认值,请按完整提示按Enter。
  5. 在您的首选IDE中打开。

配置commitlint

Windows用户的注意:

确保您在Windows PowerShell而不是命令提示符中。使用命令提示符时,以下命令无法正常工作。另外,请确保在步骤2中运行命令以创建commitlint.config.js,该文件必须为UTF-8才能工作(如果在VSCODE中,请检查右下角。它可以说UTF-16。手动调整)。

安装 @commitlint/cli和 @commitlint/config-contentional

  1. 在您的终端中运行命令npm install --save-dev @commitlint/config-conventional @commitlint/cli。这将安装commitlint命令行工具和commitlint配置,该配置可以实施传统的规定在您的项目中。

  2. 在终端中运行命令echo "module.exports = { extends: ['@commitlint/config-conventional'] };" > commitlint.config.js。这将创建文件 commitlint.config.js ,并设置commitlint,以使用config-Concontentional软件包中使用预配置的规则

配置沙哑

我们将使用一个名为HUSKY的工具来运行Commitlint检查

  1. 通过运行npx husky-init在项目中初始化沙哑的。这将提示您安装husky-init。按Enter继续进行。将在您的项目名为.husky中创建一个隐藏的目录。
  2. 删除.husky目录下的 pre-commit 文件。这将不需要,将来可以再次添加。
  3. 在运行npx husky add .husky/commit-msg 'npx --no -- commitlint --edit "$1"'使用git commit时,添加 commit-msg 挂钩以强制执行commitlint规则。这将提示您安装husky。按Enter继续进行。您应该看到 commit-msg 文件出现在.husky目录下。

  4. 通过运行git commit -m "fail: this is a failing commit message"测试commit-msg钩子是否处于活动状态。由于 Fail 是基于常规提交的一种无效类型,因此该提示将阻止您执行此消息。

这是开始编写更好的提交信息的好地方,但是使用 commitizen cz-commitlint ,可以通过交互式体验来更好地做到这一点。

用CZ-Commitlint配置委员

  1. 运行命令npm install --save-dev @commitlint/cz-commitlint commitizen inquirer@8

  2. package.json中,在脚本下添加"commit": "git-cz"

    "scripts": {
        "commit": "git-cz"
    }
    

  3. 在软件包中。

    "config": {
        "commitizen": {
            "path": "@commitlint/cz-commitlint"
        }
    }
    

  4. 仍在项目目录内的终端中,运行命令npm run commit。现在,您应该有一个交互式体验来创建传统提交规范之后的提交消息!

修改设置

所有这些设置都可以通过遵循commitlint提供的指南来修改。例如,如果我们决定要将 scope 的字符限制更改为50,请打开commitlint.config.js文件并根据规则添加"scope-max-length": [2, "always", 50]

module.exports = {
  extends: ["@commitlint/config-conventional"],
  rules: {
    "scope-max-length": [2, "always", 50],
  },
};

这只是如何更改规则的一个小例子,但是Commitlint允许灵活性更改这些设置以满足您的需求。

概括

提交消息在开发过程中起着至关重要的作用。遵循传统提交等格式可以帮助您和您的团队以有组织的方式工作,并指导您更有意识地使用提交信息。使用常规提交也有various other benefits

很高兴投入!

其他链接

Commitlint Local Setup Documentation
Commitlint Rules Documentation
Conventional Commits
Commitizen Repositories
Commitlint Respositories