Re: Removing options from build
From: Jakub Narebski <hidden>
Date: 2016-06-15 22:45:56
"R. Tyler Ballance" [off-list ref] writes:
One of our developers "discovered" the --force option on `git push` and used it without taking the appropriate care and hosed one of the project branches we have running around in our central repository. Besides a vigorous flogging, we're looking at other ways to prevent this sort of thing from happening again; the option we've settled on is to remove the "--force" flag from our internal build of v1.6.1 I'm wondering if somebody could point me in the right direction to remove "--force" (safely) from the builtin-push.c and removing the "rebase" command (we've got no use for it, and would prefer it gone).
First, the title (subject) of this email is misleading: it is about your solution, and not about the problem you have (protecting against "git push --force"). Second, there are two possible solutions: use receive.denyNonFastForwards and perhaps also receive.denyDeletes (see git-config(1)) to forbid forced pushes on server (target of push); removing '--force' is a client solution. Or, better, use update or post-receive hook on server, forbidding non-fastforward updates to selected set of 'stable' branches; you can use contrib/hooks/update-paranoid for that. -- Jakub Narebski Poland ShadeHawk on #git