有没有办法配置git存储库拒绝'git push -force'?

Czl*_*dmo 46 git

我想知道有没有办法阻止' git push --force'在存储库上(仅在主分支上)?

假设我有远程git存储库并执行:

  • ' git push'掌握''.有用.
  • ' git push --force'到'branch-1'.有用.
  • ' git push --force'掌握''.它被拒绝了.

它甚至可能吗?

感谢您的任何答案和建议.

BR,Dawid.

CB *_*ley 47

设置配置变量:

receive.denyNonFastForwards
receive.denyDeletes
Run Code Online (Sandbox Code Playgroud)

将阻止任何"强制"推送在所有分支机构中工作.

如果你想要更精细的预分支控制,那么你将不得不在远程存储库上使用'hook',可能是'update'钩子.

有一个名为'update-paranoid'的示例更新挂钩可能会在'contrib'文件夹中的git发行版中执行您需要的内容(以及更多内容).

gitweb链接

  • +1的钩子(原始版本:http://git.kernel.org/?p = git/git.git; a = blob_plain; f = contrib/hook/update-paranoid; hb = 080cbc1275ac09445136ba429d90b5ec85e92c1c) (4认同)
  • 有什么方法可以为GitHub做这个吗? (4认同)

hak*_*010 6

Github 已经引入了受保护分支的概念!

它可以在 下找到Settings -> Branches -> Protected Branches。该功能现在可供所有用户使用 - 不仅是企业!

可以为任何分支和任何用户(包括管理员)启用这种“保护”。

更多细节在这里 - https://help.github.com/articles/defining-the-mergeability-of-pull-requests/

所以不需要更多的钩子和任意代码。