LoginSignup
0
0

特定ブランチをローカルマージせずにPullRequestマージやっちゃいがちなあなたへ送るGit Hooks

Posted at

スタートアップのエンジニアだったり、ある程度権限の強い部署にいて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?

こちらに書いてありますので参考にしてください!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0