コードレビューがなし、直接developブランチに反映するのは危険ので、
直接"develop"ブランチへのpushを検知して止めるような方法を紹介します
マージの正しいルート:
リモートのdevelopブランチから新しいブランチを切る
↓
先程作った新しいブランチで改修を行う
↓
リモートのdevelopブランチにマージリクエストを投げる
↓
レビューを行う
↓
リモートのdevelopブランチにマージする。
開発途中で、ブランチを切るのは忘れて、直接developブランチにpushしてしまったルート
ローカルのdevelopブランチで改修を行う
↓
リモートのdevelopブランチにマージ
#クライアント側で設定方法
1、git管理配下に下記のファイルを追加する
#!/bin/sh
# project_root/.git/hooks/pre-push
not_allowed_branchies="develop"
read local_ref local_sha remote_ref remote_sha
remote_branch=`echo ${remote_ref} | awk -F "/" '{ print $NF }'`
for branch in `echo ${not_allowed_branchies}`
do
if [[ "${remote_branch}" = "${branch}" ]]; then
echo "***************************************************************"
echo "Gitのクライアント側で、リモートのdevelopヘの直接pushを禁止されていました。"
echo "リモートの${branch}ブランチへpushしようとしたので中断しました!"
echo "***************************************************************"
exit 1
fi
done
2、ファイルの実行権限を与える
$ chmod 755 project_root/.git/hooks/pre-push
#リモート側での設定方法
gitlabの場合、プロジェクトのsetting画面で設定ができるので、詳細の設定方法は略します。
#参考先
http://www.denet.ad.jp/technology/2017/11/gitmasterdeveloppush.html