--- /dev/null
+#!/usr/bin/env bash
+
+REPO_PATH=$(git rev-parse --show-toplevel)
+REPO_HOOKS_PATH=scripts/git-hooks
+GIT_HOOKS_PATH=$REPO_PATH/.git/hooks
+REPO_PATH_REL=../.. # Relative path from REPO_HOOKS_PATH
+
+# Create symbolic links to hooks dir
+
+# NOTE `ln -s` does not overwrite if the file exists.
+ln -s $REPO_PATH_REL/$REPO_HOOKS_PATH/pre-push $GIT_HOOKS_PATH/pre-push
--- /dev/null
+#!/bin/sh
+
+# An example hook script to verify what is about to be pushed. Called by "git
+# push" after it has checked the remote status, but before anything has been
+# pushed. If this script exits with a non-zero status nothing will be pushed.
+#
+# This hook is called with the following parameters:
+#
+# $1 -- Name of the remote to which the push is being done
+# $2 -- URL to which the push is being done
+#
+# If pushing without using a named remote those arguments will be equal.
+#
+# Information about the commits which are being pushed is supplied as lines to
+# the standard input in the form:
+#
+# <local ref> <local sha1> <remote ref> <remote sha1>
+#
+# This sample shows how to prevent push of commits where the log message starts
+# with "WIP" (work in progress).
+
+remote="$1"
+url="$2"
+
+# RUN FORMAT CHECKER
+
+REPO_PATH=$(git rev-parse --show-toplevel)
+cd $REPO_PATH
+
+./run format-checker.sh
+
+exit $?