Git如何防止本地修改公共提交

ang*_*ego 12 git git-rewrite-history

我已经在我的git central repo服务器上添加了receive.denyNonFastforwards和receive.denyDeletes.现在我想阻止本地历史修改,如果提交已经被推送到中央仓库(就像默认情况下mercurial一样),我想我可以使用钩子但我找不到任何例子.

这是一个奇怪的配置吗?

这听起来像是一个基本的保护措施,任何使用git的人都应该激活,我对缺少示例钩子感到非常惊讶.

Tyl*_*ppe 3

您可以使用Client-Side Hooks来防止本地历史记录修改,就像使用Server-Side Hooks一样。

\n\n

以下是客户端挂钩代码的一些示例。靠近该页面末尾的是一个预变基脚本,它执行的操作与您正在寻找的内容很接近。

\n\n

请注意,客户端挂钩不能以自动在下游存储库中设置的方式添加到存储库中:

\n\n
\n

由于钩子是通过项目克隆传输的,因此您必须以其他方式分发这些脚本,然后让用户将它们复制到其 .git/hooks 目录并使它们可执行。您可以在项目内或单独的项目中分发这些挂钩,但 Git 不会自动设置它们。

\n
\n