使用 SVN Hooks 我可以停止通过 ACL 签入特定文件,我如何使用 git 来做到这一点?

Using SVN Hooks I can stop checkins of particular files by ACL, how can I do this with git?

如果我们想限制对某些文件(例如:配置文件或项目文件)的访问,那么在 svn 中,可以在服务器上使用一个钩子来阻止人们签入对该文件的更改,除非他们被授权钩子脚本。

这对于 pom.xml 或 build.gradle 文件以及其他需要的配置文件很有用。

如何使用 git 实现同样的效果?

假设您使用集中式远程存储库,执行此操作的可靠方法是在远程上放置一个预接收挂钩,如果它们包含进行未经授权更改的提交,它可以拒绝推送到远程的尝试。

当然,这实际上并不能阻止人们通过在本地提交注定要在推送时被拒绝的更改来浪费自己的时间。因此,您可能还需要一个预提交挂钩,每个开发人员都可以在本地安装该挂钩,以执行相同的检查并尽早发现错误。

钩子的文档在这里:https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks