如何仅为 git diff 文件运行 swiftlint

Saz*_*han 2 git version-control swift swiftlint

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

Saz*_*han 6

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

以下代码适用于暂存文件

git diff --cached --name-only | grep "\.swift" | while read filename; do
    swiftlint lint --path "$filename";
done
Run Code Online (Sandbox Code Playgroud)

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

git diff --name-only | grep "\.swift" | while read filename; do
    swiftlint lint --path "$filename";
done
Run Code Online (Sandbox Code Playgroud)