lint-staged:'git add' 命令的目的是什么
lint-staged: what the purpose of 'git add' command
最近我开始将 lint-staged
引入我的前端构建工具链。当我查看有关它的文档时,我总是发现它的工作方式如下:
"husky": {
"hooks": {
"pre-commit": "lint-staged"
},
"lint-staged": {
"src/**/*.{js,jsx,ts,tsx,json,css}": [
"prettier --write",
"eslint --fix src/",
"tslint --fix --project .",
"git add"
]
},
你可以在link中找到更多类似的用法:https://github.com/okonet/lint-staged
我的困惑点是最后一个命令git add
,它的目的是什么?
我的理解是lint-staged
只在git add
之后和git commit
之前验证暂存区的代码。所以无法理解为什么我们需要再添加一个git add
。
它使用 husky 在您提交之前挂钩一些操作。参见:https://github.com/typicode/husky
lint-staged
只是更改您的代码并使其 linting(它在 husky 提交之前运行)。更改后,需要重新添加以更新git index。您的更改将在您的提交中生效。
你不需要 git add
因为 lint-staged 10
From v10.0.0 onwards any new modifications to originally staged files
will be automatically added to the commit. If your task previously
contained a git add
step, please remove this. The automatic
behaviour ensures there are less race-conditions, since trying to run
multiple git operations at the same time usually results in an error.
最近我开始将 lint-staged
引入我的前端构建工具链。当我查看有关它的文档时,我总是发现它的工作方式如下:
"husky": {
"hooks": {
"pre-commit": "lint-staged"
},
"lint-staged": {
"src/**/*.{js,jsx,ts,tsx,json,css}": [
"prettier --write",
"eslint --fix src/",
"tslint --fix --project .",
"git add"
]
},
你可以在link中找到更多类似的用法:https://github.com/okonet/lint-staged
我的困惑点是最后一个命令git add
,它的目的是什么?
我的理解是lint-staged
只在git add
之后和git commit
之前验证暂存区的代码。所以无法理解为什么我们需要再添加一个git add
。
它使用 husky 在您提交之前挂钩一些操作。参见:https://github.com/typicode/husky
lint-staged
只是更改您的代码并使其 linting(它在 husky 提交之前运行)。更改后,需要重新添加以更新git index。您的更改将在您的提交中生效。
你不需要 git add
因为 lint-staged 10
From v10.0.0 onwards any new modifications to originally staged files will be automatically added to the commit. If your task previously contained a
git add
step, please remove this. The automatic behaviour ensures there are less race-conditions, since trying to run multiple git operations at the same time usually results in an error.