Git钩子,禁止在顶层创建目录

3
有没有更好的方法防止用户在推送或直接创建文件时创建顶级目录?
3个回答

2
这个答案补充了VonC 的回答
每个开发者都应该有自己的克隆(工作副本),你可以实际控制的唯一内容是允许或禁止推送到发布库(或在你拉取它们的更改时)。这可以使用updatepre-receivehook钩子来完成。
注意:pre-commit钩子可以通过使用"git commit --no-verify"绕过。
我不确定是否有现成的解决方案支持您想要施加的限制,但我认为update-paranoid示例钩子(来自git源码中的contrib/hooks)和gitolite(管理对git存储库的访问权限工具)都可以扩展以支持它。两者都可以进行基于路径/差异的限制,例如仅允许更改给定配置的子目录。

非常好的补充。+1。由于我刚刚安装了gitolite,我会看一下它如何支持这样的约束条件。 - VonC

1

你可以尝试使用客户端钩子,比如

pre-commit钩子是在你输入提交信息之前运行的第一个钩子。
它用于检查即将提交的快照,以查看是否有遗漏,确保测试运行正常,或者检查您需要检查的代码内容。从这个钩子中退出非零会中止提交,但您可以通过git commit --no-verify绕过它。

请参阅此高级pre-commit钩子示例,了解可以在检查索引内容方面做什么。


1

如果你真的想要对主代码库有那种程度的控制权,就不要让其他人往里面推送。相反,让管理员从其他用户那里拉取并审查他们的更改,以确保他们没有违反政策。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接