6

我们最近有一个实习生运行“git reset --hard”并且不小心撤消了我们主要 GIT 存储库上的很多工作。我们正在恢复工作,但我想确保不会再发生类似的事情。

我知道对此有很多疑问,但它们似乎都是关于恢复而不是预防。有什么办法可以防止推送到我们的主仓库来更改或删除已经推送的提交?是否有一个配置设置或者一个推送钩子可以完成这项工作?

4

1 回答 1

9

您可以在中央(裸)存储库中设置2 个配置选项,以帮助防止此问题:

receive.denyNonFastForwards
receive.denyDeletes

第一个选项要求所有推送仅添加历史记录。Agit reset后跟 agit push将被拒绝。

第二个关闭了一个漏洞,有人可以删除一个远程分支,git push <origin> :<branch-to-delete>然后用正常的git push和他们想要的任何更改再次推送。

于 2012-04-18T16:30:20.940 回答