问题出在 PURE GIT ,而不是GitHub,GitBucket,GitLab等。
有没有办法使用钩子或其他任何东西,我可以捕获有人试图删除远程分支的命令?
类似于命令" push --delete origin branchName"
预推或更新挂钩,不知道"删除"被执行。
非常奇怪,偶然或不理解某人可以非常简单地删除像#" master"这样的主要分支。它是正确的,一切都可以恢复,但为什么所有的麻烦?我无法将其标记为受保护或至少是某些钩子,我可以检查它是否正在完成?
我们只使用GIT与GitExtentions,只需简单的http,我们就不会切换到其他工具。
谢谢, 利。
答案 0 :(得分:4)
配置receive.denyDeletes
可用于此:
$ git config receive.denyDeletes true
请参阅this reference at the very bottom:
这会拒绝任何分支或标签的删除 - 用户无法做到这一点。要删除远程分支,必须手动从服务器中删除ref文件。
或者来自git config reference:
如果设置为true,git-receive-pack将拒绝删除ref的ref更新。使用它来防止通过推送删除这样的引用。
这将在裸存储库上设置,或者对于在该系统上处理的所有存储库全局--system
。