在本地禁用`git push --force`

kon*_*gun 5 git bash

我想--force在本地机器上完全禁用git的标志用法(全局禁用我拥有的所有存储库)。我认为可以使用一些bash钩子,但是在哪里可以找到有关创建钩子钩子的更多信息?
理想情况下,行为是这样的:每次我尝试--force在任何存储库中的任何push命令中使用flag时,我的终端都会显示命令中止并告诉我它被禁止。

UPDATE:遗憾的是没有一个答案是正确的,因为我并不需要一个存储库位于钩。我需要我的钩本地计算机,以防止推到远程时使用--force标志。

Gre*_*con 4

配置选项receive.denyNonFastForwards可以做你想做的事。

receive.denyNonFastForwards
Run Code Online (Sandbox Code Playgroud)

如果设置为 true,git-receive-pack将拒绝不是快进的引用更新。使用此功能可以防止通过推送进行此类更新,即使该推送是强制的。该配置变量是在初始化共享存储库时设置的。

在你的个人 git 配置中设置它

git config --global receive.denyNonFastForwards true
Run Code Online (Sandbox Code Playgroud)

  • 这也会阻止 --force-with-lease 吗?我试图让自己始终强迫自己遵守租约,但是……习惯…… (3认同)