スタートアップのエンジニアだったり、ある程度権限の強い部署にいてHotFix当てるような場面のある人だとやりがちなことといえば、他人の作業ブランチやdevelop、main、masterなどのリリース用ブランチをマージせずに自分の作業分だけgit push/mergeしてしまうということじゃあないだろうか。
私も去年数えるだけで4回はやっている。
これを反省し、commit前にマージ忘れを検知してくれるGit Hooksのpre-commitをChatGPTに教えてもらったので以下に記載しておく。
以下の例は develop ブランチなので、mainとかreleaseとかmasterとか各自の環境に合わせて変えていただきたい。
.git/hooks/pre-commit
#!/usr/bin/env bash
git fetch origin develop:develop
# 現在のブランチとdevelopブランチの共通の祖先を取得
COMMON_ANCESTOR=$(git merge-base HEAD develop)
# developブランチの最新のコミットを取得
LATEST_DEVELOP_COMMIT=$(git rev-parse develop)
# 共通の祖先がdevelopの最新コミットと同じかどうかをチェック
if [ "$COMMON_ANCESTOR" != "$LATEST_DEVELOP_COMMIT" ]; then
echo "ERROR: Your branch is out of date with 'develop' branch. Please merge 'develop' into your branch."
exit 1
fi
Git Hooksって何? pre-commit?
こちらに書いてありますので参考にしてください!