git - 仅在使用 Git Diff 更改的文件上运行 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 --name-only develop-- *.ts | npm 运行 lint
tslint -c .\tslint.json -p .\tsconfig.json
是否有一种简单的单行方法只对分支中更改的文件运行 lint?
解决方案
我通过运行获得了修改文件的列表
git diff --name-only --diff-filter=ACMR origin/dev-123...develop -- *.ts
origin/dev-123
源分支在哪里develop
,目的地在哪里。
我将该命令的输出放入一个数组中,然后针对文件数组运行 linter。
推荐阅读
- html - 背景尺寸:Iphone 上的封面显示不清晰
- r - 使用来自 R 中 4 个不同栅格堆栈的地图循环生成 par() 面板图
- r - 从 GLM 获取真实的预测值
- html - 具有行高的div中跨度的css边框,边框在顶部旁边
- java - 如何在 Spring Boot 中处理 Spring Security 中的 csrf 令牌和会话到期?
- vue.js - Vuetify - 严格的数据表自定义过滤器
- dockerfile - 评估 dockerfile 中的 ARG
- java - 如何使用 Spring Security 5 OAuth2 客户端和 RestTemplate 刷新 OAuth2 令牌
- android - copyToRealmOrUpdate 删除了 RealmResults 中的更新对象
- html - Angular 4 - 如何在 innerHTML 中添加徽标?