如何 运行 swiftlint 仅用于 git diff 文件

How to run swiftlint for git diff files only

我正在做一个 iOS Swift 项目。 Git 用于版本控制。我想 运行 swiftlint 工具仅用于新更改的文件。换句话说,我只想检查上次提交之前编辑过的文件的静态问题。如果可能的话,我会在 Build phase -> Run script 中添加脚本,这样每个开发人员都可以只针对他们正在处理的文件找到静态问题。可能吗?

在构建阶段添加以下命令 - 运行 脚本会有所帮助。

以下代码适用于暂存文件

git diff --cached --name-only | grep "\.swift" | while read filename; do
    swiftlint lint --path "$filename";
done

对于未暂存的文件,您需要删除 --cached 参数

git diff --name-only | grep "\.swift" | while read filename; do
    swiftlint lint --path "$filename";
done