@peccul is peccu

(love peccu '(emacs lisp cat outdoor bicycle mac linux coffee))

git flowを使うときにmaster, develop以外の名前のブランチを使う

TL;DR

GitHub Flowではなく、Git Flowについて。 git flow initではなくgit configコマンドで設定してしまおう。という話

経緯など

稀にmasterブランチは master-custom, developブランチは develop-custom ブランチという名前で運用したい状況がある。 (例えばOSSをforkして、拡張する場合)

git-flowコマンドではmaster, developの名前で初期値が設定されるので 名前が違う場合は明示的に設定を変更する必要がある。

git flow initを叩くと対話的に設定可能だが、説明が手間/冗長であったり 手作業が混入してしまうのは間違うリスクがあるのでプロジェクトとしては避けたいところ。

そこでシェルスクリプトで設定してしまえば、間違いを減らせるはず。

スクリプト

git configコマンドで設定可能なので、プロジェクトの初期化スクリプトなどに含めてしまえばいい。

最後にcheckoutしているのは事前にローカルでもそのブランチが存在する状態にするため。 ローカルに存在しないとfeatureブランチやreleaseブランチを作成するときに親となるブランチが見つからないので。

#!/bin/bash
MASTER_BRANCH=master-custom
DEVELOP_BRANCH=develop-custom

git config gitflow.branch.master $MASTER_BRANCH
git config gitflow.branch.develop $DEVELOP_BRANCH
git config gitflow.prefix.feature feature/
git config gitflow.prefix.hotfix hotfix/
git config gitflow.prefix.release release/
git config gitflow.prefix.support support/
git config gitflow.prefix.versiontag ""
git checkout $MASTER_BRANCH
git checkout $DEVELOP_BRANCH