在GIT中,如何防止人们更改或删除已经推送的提交?

Sea*_*ean 5 git reset githooks

我们最近有一个实习生"git reset --hard",并且不小心撤消了我们主要GIT仓库的大量工作.我们正在恢复工作,但我想确保这样的事情再也不会发生.

我知道有很多关于此的问题,但它们似乎都是关于恢复而不是预防.有什么方法可以阻止推送到我们的主仓库改变或删除已被推送的提交?是否有配置设置或推送挂钩可以完成这项工作?

dun*_*289 8

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

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

第一个选项要求所有推送仅添加历史记录.A git reset后跟a git push将被拒绝.

第二个关闭一个循环孔,有人可以删除远程分支,git push <origin> :<branch-to-delete>然后再按正常git push和他们想要的任何更改.