Ely*_*ahu 3 git hook git-extensions atlassian-sourcetree
问题在于PURE GIT,而不是 GitHub、GitBucket、GitLab 等。
有没有办法使用钩子或其他任何东西,我可以捕捉到某人试图删除远程分支的命令?
类似于命令“push --delete origin branchName”
预推送或更新挂钩,不知道是否执行了“删除”。
很奇怪,不小心或不理解某人可以非常简单地删除甚至像“master”这样的主要分支。一切都可以恢复是正确的,但为什么要这么麻烦?我没办法将它标记为受保护的,或者至少是一些我可以检查它是否正在完成的钩子?
我们只使用 Git 和 GitExtentions,使用简单的 http,我们不会切换到其他工具。
谢谢,伊莱。
该配置receive.denyDeletes
可用于:
$ git config receive.denyDeletes true
Run Code Online (Sandbox Code Playgroud)
请参阅最底部的此参考:
这拒绝删除任何分支或标签——没有用户可以这样做。要删除远程分支,您必须手动从服务器中删除 ref 文件。
或者从git 配置参考:
如果设置为 true,git-receive-pack 将拒绝删除引用的引用更新。使用它来防止通过推送进行此类引用删除。
这将在裸存储库上设置,或者--system
在该系统上处理的所有存储库全局设置。