防止用户停止创建顶级目录的更好方法可能是在推送或直接创建文件时?
3 回答
这个答案是对VonC 答案的补充。
由于每个开发人员都应该有他/她自己的克隆(他/她自己的工作存储库),因此您可以实际施加的唯一控制1是在推送到发布存储库期间(或在您拉取他们的更改期间)允许或禁止。这可以使用update
或pre-receive
hook来完成。
1)pre-commit
可以用“git commit --no-verify”绕过钩子
我不知道是否有任何现成的解决方案支持您想要施加的约束,但我认为update-paranoid示例挂钩(来自contrib/hooks
git 源)和gitolite(管理对 git 存储库的访问的工具)都可以扩展为支持它; 两者都可以做基于路径/基于差异的约束,例如只允许对给定的配置子目录进行更改。
您可以尝试客户端钩子,例如
钩子首先
pre-commit
运行,甚至在您输入提交消息之前。
它用于检查即将提交的快照、查看您是否忘记了某些内容、确保测试运行或检查您需要在代码中检查的任何内容。从此钩子中退出非零会中止提交,尽管您可以使用git commit --no-verify
.
请参阅此高级预提交挂钩示例,以了解在检查索引内容方面可以做什么。
如果您真的想要对进入主存储库的内容进行这种级别的控制,请不要让其他人推送到它。相反,让经理从其他用户那里拉取并审查他们的更改,以确保他们没有违反政策。