防止“git push origin -prune”?

时间:2015-01-20 17:35:53

标签: git git-push

只是勉强避免了国际事件。我们的一位开发人员执行了git push origin --prune(而不是git fetch origin --prune!)

这导致在远程存储库上删除所有远程分支(除了当前分支之外的所有远程分支)。

幸运的是,另一个开发人员的克隆没有获取,所以我可以重新推动所有远程分支。

这对我来说似乎相当危险;有没有办法防止这种情况,或者至少使其更难做到?

2 个答案:

答案 0 :(得分:0)

您可以更改服务器端的更新挂钩。

您可以在此处找到相关文档: http://git-scm.com/docs/githooks 在这里你可以找到更详细的例子: An Example Git Enforced Policy

我认为您可以编写一个钩子,以便拒绝删除多个分支。

答案 1 :(得分:0)

这取决于您如何管理授权。 如果您使用gitolite,则只需确保标准用户对存储库没有RW +权限。

access rules in gitolite的语法表明,如果没有RW +,用户将无法推送任何会删除存储库中任何内容的操作。