Currently you can do in your server's git config: [receive] denyDeletes = true denyNonFastForwards = true But for most servers that's not what you want, you actually want to deny those things to the master branch, but allow people to have their private topic branches that they can reset. So how about allowing: [receive] denyDeletes = false denyNonFastForwards = false [branch "master"] denyDeletes = true denyNonFastForwards = true I.e. have a per-branch setting that overrides the global setting? (Of course ideally this would be: "branch.master.receive.{denyDeletes,denyNonFastForwards}" But the *.ini format can only have a depth of three, so it has to be: "branch.master.{denyDeletes,denyNonFastForwards}" Or perhaps: "branch.master.receive-{denyDeletes,denyNonFastForwards}" Anyway, I can code this up if there's interest in it. This could also be done with a .git/hooks/update hook, but IMO it's better to have this as a documented setting for the most common things you want to deny/allow. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html