当前位置: 首页 > 知识库问答 >
问题:

lint-staged如何撤销暂存区的文件到工作区?

卫飞
2023-11-30
  "lint-staged": {    "./src/**/*": ["eslint --fix", "prettier --write"]  },

配置完上述代码后,我依次执行git add .git commit -m "test",然后eslint检测到有未使用的变量,中止commit,但是我操作过的文件处于暂存目录,需要手动执行git restore --staged .,有没有办法在eslint发生错误时,让文件主动处于工作区

共有2个答案

东方俊力
2023-11-30
"scripts": {  "precommit": "lint-staged --bail && git add . || git restore --staged .",  "lint-staged": "lint-staged"}
何昆
2023-11-30

似乎你正在寻找一种方式,当遇到 eslint 错误时,能够将暂存区的文件直接恢复到工作区。然而,根据我对 Git 和 eslint 的理解,这样的操作并不直接可能。Git 的操作是原子性的,即 git addgit commit 必须一起使用。一旦你将文件添加到暂存区,你就必须提交这些更改。

eslint 是一个静态代码分析工具,它会在你尝试提交代码时运行,并报告任何可能的问题。然而,一旦你尝试提交,这些问题就变成了你的待办事项,你需要手动解决这些问题才能完成提交。

你的问题似乎是希望在 eslint 报告问题后,能够将暂存区的文件直接恢复到工作区。然而,这并不符合 Git 的设计理念。如果你不想将问题添加到你的版本控制历史中,你可能需要配置你的 eslint 规则以避免报告这些问题,或者在提交之前运行 eslint 以自动修复这些问题。

另外,你可能可以尝试使用一些自动化工具或钩子来处理这个问题。例如,你可以设置一个 Git 钩子,在每次尝试提交时自动运行 eslint。如果 eslint 报告了问题,这个钩子可以自动将暂存区的文件恢复到工作区。然而,这样的解决方案可能会带来其他问题,比如可能会导致你的工作区变得混乱,或者可能会导致你的版本控制历史中包含一些不应该提交的更改。

总的来说,你可能需要重新考虑你的开发流程,以便更好地适应使用静态代码分析工具进行代码质量检查。例如,你可以在代码编写过程中运行 eslint,而不是等到提交时才运行。这样你可以在编写代码时及时发现并解决问题,而不是在提交时才发现问题。

 类似资料:
  • 问题内容: 我尝试了很多方法来使用jGit克隆存储库(它可以工作)。然后,我写的一些库存档,并尝试添加所有(一个,或者类似的东西)..但它不工作。简单文件不会添加到暂存区域。 我的代码是这样的: 我究竟做错了什么?谢谢。 尝试使用addFilePattern(“。”)时发生异常: 问题答案: 一个简单的方法来调试这是看的测试AddCommand在JGit回购: 您将看到,为了添加所有文件,从不使用

  • 撤销是 Git 提供的一个非常优秀的功能,它可以允许你撤消刚刚所做的操作。这就意味着你不必害怕搞砸你正在工作的项目: Git 一直会让你的项目处于一个安全的状态。 修改最后一次提交 无论你如何精心地推敲你的提交,你总是有可能出错的。比如忘记了把一个改动过的文件添加到提交中,或者是输入了错误的提交注释等等。当你认为提交有问题时,你都可以使用 “git commit” 命令,并附带上 “--amend

  • 基本概念 我们先来理解下Git 工作区、暂存区和版本库概念 工作区:就是你在电脑里能看到的目录。 暂存区:英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。 下面这个图展示了工作区、版本库中的暂存区和版本库之间的关系

  • 本文向大家介绍Git 撤销操作、删除文件和恢复文件,包括了Git 撤销操作、删除文件和恢复文件的使用技巧和注意事项,需要的朋友参考一下 大致介绍 经过前面的学习,已经建立了版本库,并上传了文件,这次来学习对这些文件进行基本的操作,即:     ◆ 撤销操作     ◆ 删除文件     ◆ 恢复文件 我在此之前,已经将三个文件提交到了版本库 撤销操作 撤销操作的语法: git checkout -

  • git 获取修改文件和新增文件列表(不包过删除文件) git ls-files 命令 没有添加到暂存区上面的命令是正常的,添加到暂存区获取不到对应的文件。 需要实现一下功能: 1.获取修改文件列表(不包括删除文件); 2.获取新增文件列表; 3.文件是否在暂存空间,都能获取到文件列表(暂存空间文件和未暂存空间文件重复去重); 已暂存 --diff-filter 参数: A:新增文件 D:已删除文件

  • Staging Area,暂存区 / 中间区。把对项目做的修改,先放到暂存区,然后再做提交。 用法 把对某个文件的所有修改添加到暂存区: git add <文件> 把在某个目录下做的所有修改添加到暂存区: git add <目录> 把做的所有修改还有新的文件添加到暂存区(不包含删除文件): git add . 把所有东西放到暂存区(修改,新文件,删除文件): git add -A 把做的所