如何只对git diff文件运行swiftlint

7qhs6swi  于 2023-05-21  发布在  Git
关注(0)|答案(2)|浏览(90)

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

qvk1mo1f

qvk1mo1f1#

在构建阶段-运行脚本中添加下面的命令会很有帮助。
下面的代码将适用于暂存文件

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
sqxo8psd

sqxo8psd2#

您不必遍历这些项:

swiftlint lint --path $(git diff HEAD --name-only | grep "\.swift")

另外,git diff HEAD提供了暂存未暂存文件。

相关问题