<aside> 💡 現在主にAltiveで使用しているフローはこちら。
</aside>

https://nvie.com/posts/a-successful-git-branching-model/
A successful Git branching model | nvie.com ****より
- とするmain , develop は常に存在するブランチ、その他はプルリクエストを介したマージが完了したら削除する。(GitHubの設定で自動削除可能)main , develop ブランチは直コミット禁止。必ずプルリクエストを介してマージする。プルリクエストのマージは以下2種類のマージを使い分ける。
release ブランチや hotfix ブランチは、複数のブランチ( main , develop )にマージする必要があり、この時 Squash and merge を使用してしまうと、同一のコミットとみなされず次回コンフリクトが発生してしまう。必ずこちらのマージ方法を使用すること。
feature ブランチは、 develop ブランチ、または feature ブランチ同士でしかマージしない。
feature ブランチ内での細かいコミット履歴は不要なことが多く、 Create a merge commit でマージすると無駄にコミット履歴が嵩むことになる。
そこで Squash and merge を使用すると、マージがただ1つのコミットで表現される。(=プルリクエスト単位のコミット履歴となる)
main と develop や、Tag同士 ( v1.0.0 … v1.1.0 )でコミット差分を見るときも、コミット履歴がプルリクエストタイトルで並んでいて分かりやすい。
リリース単位の開発成果がこのブランチにマージされる。