我编写了一个 git pre-commit 钩子,如果我的 xcode 项目无法编译,它会中止提交。
它通过为我的项目运行具有适当设置的 xcodebuild 来做到这一点。如果 xcodebuild 返回非零状态,则您无法提交更改。
这是我正在运行的 xcodebuild 命令:
xcodebuild -project MYPROJ/MYPROJ.xcodeproj -target MYPROJ -configuration Debug clean build CODE_SIGN_IDENTITY='iPhone Developer' >/dev/null 2>&1
我想知道的是,如果我从构建命令中删除“干净”,我会遇到什么问题?我对“干净”的作用有一个模糊的理解:删除以前编译的对象,这将导致以下构建命令从头开始构建整个项目。
但是,完整的构建在我们的项目上需要很长时间,而如果我们不进行清理并且没有进行大量修改,则只需几秒钟。我想保持我们的 pre-commit-hooks 快速和轻量级,但我担心构建会进入一些奇怪的状态并阻止开发人员即使他们的代码很好也无法提交。
如果我在每次构建我的预提交钩子之前不清理,我会遇到问题吗?在某些情况下,它是否会错误地报告构建错误,或者如果我不清理,它会不会出错?