只是勉强避免了国际事件。我们的一位开发人员执行了git push origin --prune
(而不是git fetch origin --prune
!)
这导致在远程存储库上删除所有远程分支(除了当前分支之外的所有远程分支)。
幸运的是,另一个开发人员的克隆没有获取,所以我可以重新推动所有远程分支。
这对我来说似乎相当危险;有没有办法防止这种情况,或者至少使其更难做到?
答案 0 :(得分:0)
您可以更改服务器端的更新挂钩。
您可以在此处找到相关文档: http://git-scm.com/docs/githooks 在这里你可以找到更详细的例子: An Example Git Enforced Policy
我认为您可以编写一个钩子,以便拒绝删除多个分支。
答案 1 :(得分:0)
这取决于您如何管理授权。 如果您使用gitolite,则只需确保标准用户对存储库没有RW +权限。
access rules in gitolite的语法表明,如果没有RW +,用户将无法推送任何会删除存储库中任何内容的操作。