Git pre-push hook
Checks if the remote branch is
master, then asks a confirmation. Based on https://gist.github.com/ColCh/9d48693276aac50cac37a9fce23f9bda, but modified to check the remote name instead of local, making it work also for the really dangerous accidents like below:
git push -f origin e09b7418a310114f6aaf495f969c3859095a99af:master
Further info: https://dev.ghost.org/prevent-master-push/, https://coderwall.com/p/jp7d5q/create-a-global-git-commit-hook, https://git-scm.com/docs/githooks#_pre_push, https://stackoverflow.com/questions/22585091/git-hooks-pre-push-script-does-not-receive-input-via-stdin
Enable git templates
git config --global init.templatedir '~/.git-templates'
Create a directory to hold the global hooks:
mkdir -p ~/.git-templates/hooks
pre-pushfile from below into
Make it executable
chmod +x ~/.git-templates/hooks/pre-push
In currently existing project, do a reinit. This will not overwrite existing commits, or existing hooks -- so if you already have a
pre-pushhook, you may need to merge the two together.