如何在每个Git提交上运行SwiftLint自动更正

SwiftLint由好人@realm开发。 这是一个很棒的开源工具,用于在Swift中建立和执行正式的编码风格。 它在命令行上运行,但是也可以直接挂接到Xcode中。 它还具有“自动更正”功能,可扫过您的代码并自动修复最琐碎的违规行为(例如,冒号定位,双空格等)。 我创建了一个Git提交钩子,每次团队成员进行更改时,它都会执行此操作。

Shell脚本本身很简单。 只有提交中更改的文件将被自动更正。 为防止意外的文件更正,这些更改不会自动包含在当前更改集中。 您将有机会查看更正,并进行新的提交以完成这些更改,或修改先前的提交。

#!/bin/sh 
git diff --cached --name-only | grep .swift | while read filename; do
/usr/local/bin/swiftlint autocorrect --path "$filename"
done

将此Shell脚本安装在Git存储库的.git/hooks目录下。 确保将其命名为pre-commit (无文件扩展名)。

无论您使用哪种Git GUI工具,该提交钩子都应该可以正常工作,当然也可以使用命令行。

请注意,每个团队成员必须单独重复此安装。 没有办法自动分发git commit hooks。