Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 我怎样才能只修改代码行_Git_Github_Continuous Integration_Eslint - Fatal编程技术网

Git 我怎样才能只修改代码行

Git 我怎样才能只修改代码行,git,github,continuous-integration,eslint,Git,Github,Continuous Integration,Eslint,我需要一种只在分支上已更改的代码行或代码块上运行ESLint的方法。我们的想法是,我们有一个庞大的旧代码库,我们希望至少在未来实施ESLint规则 我在CI linting中实现了它,在PR中更改了所有文件。但是人们在文件中只接触一行,突然他们不得不修复77个ESLint错误 就我个人而言,我一点也不关心他们,但他们比我更大更强壮,我想我需要在这里迈出一些小步 这样我就可以得到一个为某个分支更改的所有文件的列表。我怀疑我可以做一个diff并解析它,提取所有更改的行号,然后运行ESLint并根据行

我需要一种只在分支上已更改的代码行或代码块上运行ESLint的方法。我们的想法是,我们有一个庞大的旧代码库,我们希望至少在未来实施ESLint规则

我在CI linting中实现了它,在PR中更改了所有文件。但是人们在文件中只接触一行,突然他们不得不修复77个ESLint错误

就我个人而言,我一点也不关心他们,但他们比我更大更强壮,我想我需要在这里迈出一些小步

这样我就可以得到一个为某个分支更改的所有文件的列表。我怀疑我可以做一个diff并解析它,提取所有更改的行号,然后运行ESLint并根据行号过滤结果,但这听起来像是一个巨大的痛苦

我的问题是,有没有更好的方法来做到这一点?我不是第一个需要这个的人


我明白这一“要求”严格适用于像我这样的边缘情况,因为整个文件更改的负担太大了。这不是最优的。这是次优的,但如果我不这样做,我什么也得不到,所以我必须选择我的战斗。

我想你可以使用一些类似的工具。它将根据linter结果添加对您的PR/MR的审查反馈,该结果仅为差异的一部分:

reviewdog提供了一种方法,通过轻松地与任何linter工具集成,可以自动向代码托管服务(如GitHub)发布审阅注释。它使用lint工具的输出,并将其作为评论发布,如果发现的问题与要审查的补丁不同

顺便说一句,这帮我弄明白了这一点,并为您的用例提出了替代解决方案,如果您感兴趣的话


干杯

我为这个确切的用例编写了一个ESLint插件。我们有一个现有的配置,想对配置进行一次大的修改,但不想一次性修复所有的错误(以前定义为非错误),因为这将是一个可怕的错误

相反,这个插件只允许您区分您已经准备好的内容,我们在预提交中运行它。package.json中的常规“lint”脚本没有使用该插件,因此它仍然显示所有错误/警告


这里有一个链接:

但是如果你只看一下差异,你仍然会错过问题。假设你有
让x=42然后
foo(x)
。一次提交将删除函数调用。现在您有了一个未使用的变量
x
,但是扫描更改的行并不能显示这一点。您也可能遇到相反的问题,提交会添加
条(y)
。但是从来没有定义过
y
。仅仅通过扫描更改是不可能找到这个问题的。我喜欢这样,反对的理由越多越好。我的计划是只使用行级别的东西,如react/no spread道具,这可能会导致您在越来越深入的过程中更改许多文件(更多证据表明这是一条重要的规则)。这样一来,人们就不会再这样做了,但如果他们用一个文件来更改一个文件,他们也不会完全完蛋。哇!非常感谢你,帕特里克。我希望有像这样的东西给更漂亮的人--也写。