lint-staged:'git add'命令的目的是什么

时间:2019-01-28 06:48:41

标签: git lint lint-staged

最近,我开始在自己的Frontend构建工具链中使用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"
    ]
  },

,您可以在链接中找到更多类似的用法:https://github.com/okonet/lint-staged

我的困惑点是最后一个命令git add,目的是什么?

我的理解是lint-staged仅在git add之后且在git commit之前的暂存区域中验证代码。因此无法理解为什么我们需要再次添加一个git add

2 个答案:

答案 0 :(得分:9)

自棉绒上进10后,您不需要git add

从v10.0.0开始,对原始暂存文件的任何新修改 将自动添加到提交中。如果您以前的任务 包含一个git add步骤,请删除此步骤。自动 行为确保尝试运行后减少了竞争条件 同时执行多个git操作通常会导致错误。

答案 1 :(得分:0)

使用沙哑的方法在提交前会钩住一些动作。参见:https://github.com/typicode/husky

lint-staged只是更改您的代码并使它整齐(它在 husky 提交之前运行)。更改后,您需要再次添加它以更新 git index 。您所做的更改将在您的提交中生效。