强制 pre-commit 是否是错误的?
文章是草稿,需要修改。
答案是是,甚至是邪恶,影响效率的。
注意这里写的是强制,是 开发流程的一部分。
git 是什么?
我们这里假设,现代开发都是基于 branch 的。
git 是为了存储 code change。一切阻止 commit 的流程都是低效的。
developer 需要在任何是时刻都可以 check in。
我的本地 git 就是我的 git,我的 branch 就是我的 branch,我的开发环境就是我的开发环境,请不要用你的观点 (pre-commit),来教我怎么使用 git,怎么 commit。
工程化
“你这野路子工程师,懂不懂工程化,标准的含金量啊?”
通过 CI 让 PR 变得麻烦,来强制标准
Pre-commit 是可以在本地 --no-verify
skip 的? 肯本无法让 阻止 skip git hooks。
如果你想要工程化,标准化,请在 PR 时候,让 CI 跑各种检查,而不是使用 pre-commit。
应该通过 PR 和 CI 来和 developer 进行交流,强制项目标准。
而不是把标准强加在 developer 的本地开发环境上。
如果你的 CI 做不到,请使用 github action 或者增强自己的 CI。
开发者的安全感
我不相信有开发者喜欢强制 pre-commit。 开发者应该有随时随地 commit 的自由。让每个 commit 都是完成的,满足 pre-commit 要求是痴心妄想。
所以请删除你项目的 pro-commit,把他们移到 CI 上。
其他 git hook 同理