使用Git Diff

时间:2018-07-08 16:04:24

标签: git tslint

我只想对在请求请求中修改的文件而不是整个项目运行tslint

git diff --name-only develop -- *.ts成功打印出在功能分支和开发之间已更改的文件名。

我正在尝试将该命令传递到我的lint命令中。 Lint可以输入要运行的文件列表,而不是通过在以下位置放置文件名来运行所有文件:

git diff --name-only develop -- *.ts | npm run lint

这在我们的Jenkins框上有效,但是在我的本地Windows计算机上,lint命令的末尾没有附加文本。

  

C:\ code> git diff-仅命名开发-* .ts | npm运行皮棉

     

tslint -c。\ tslint.json -p。\ tsconfig.json

是否有一种简单的单行方法,该方法仅对分支中已更改的文件运行lint?

3 个答案:

答案 0 :(得分:2)

我通过运行获得了已修改文件的列表

git diff-仅名称--diff-filter = ACMR origin / dev-123 ... develop-* .ts

origin/dev-123是源分支,develop是目标分支。

我将该命令的输出放入一个数组中,然后对文件数组运行了linter。

答案 1 :(得分:1)

您可以使用此程序包在仅diffs上加载打字稿:

https://github.com/AtakamaLLC/lint-diffs

pip install lint-diffs

然后将配置.lint-diffs修改为包括:

[tslint]
extensions=.ts
regex=(?P<err>[^ :]+) *(?P<file>[^:]+):(?P<line>\d+):
command=tslint -c tslint.json -p tsconfig.json
always_report=E

这里假设ts-linter的输出为prose。如果您的配置文件使用自定义格式,则必须修改正则表达式以使其匹配。

答案 2 :(得分:0)

您可以使用Git Bash运行以下内容:

npm run lint $(git diff --name-only --diff-filter=ACMR origin/dev-123...develop -- *.ts)