We have all heard of horror stories as a result of misusing
git push --force.
If you have the appropriate permissions on your "central" git repository, you can disable force push by
git config --system receive.denyNonFastForwards true.
For Github Enterprise, you can follow instructions on this page to disable force push.
For other Github repositories (the ones that most of us use daily), there are no ways to disable force push. Some workarounds include:
- Limiting the group of people will push privileges. Other contributions will have to come in as Pull Requests.
- Set up an intermediate repo on your side with a
pre-receivehook to prevent force push.