Skip to content

Latest commit

 

History

History
106 lines (89 loc) · 2.95 KB

ブランチ戦略.md

File metadata and controls

106 lines (89 loc) · 2.95 KB

ブランチ戦略

VOICEVOXのエディタ・エンジン・コア・リソースなどのリポジトリで取られているブランチ戦略を紹介します。 一言でいうと、リリースブランチ付きのGitHub Flowです。

プルリクエスト(≒featureブランチ)

プルリクエストは任意のタイミングでmainブランチから派生して、mainブランチにマージします。 mainにマージする際はsquashマージします。

%%{init: {'theme':'base', 'gitGraph': {'showCommitLabel': false}} }%%
gitGraph
    commit
    commit
    branch PR1
    commit
    checkout main
    merge PR1
    commit
    branch PR2
    commit
    commit
    checkout main
    merge PR2
    commit
Loading

releaseブランチ

マイナーバージョンごとにreleaseブランチを作成し、パッチバージョン更新時はそのreleaseブランチにコミットし、タグを打ちます。 バージョン更新後にreleaseブランチをmainにマージします。 releaseブランチをmainにマージする際はsquashせずにマージします。

%%{init: {'theme':'base', 'gitGraph': {'showCommitLabel': false}} }%%
gitGraph
    commit
    commit
    branch release-0.1
    commit tag:"0.1.0"
    checkout main
    merge release-0.1
    checkout release-0.1
    commit
    commit tag:"0.1.1"
    checkout main
    merge release-0.1
    commit
Loading

リリースに関してはリリース戦略を参照してください。

hotfixプルリクエスト

リリース済みの機能に問題があった場合は、releaseブランチから派生して、releaseブランチに向けてhotfix用のプルリクエストを作成します。

%%{init: {'theme':'base', 'gitGraph': {'showCommitLabel': false}} }%%
gitGraph
    commit
    commit
    branch release-0.1
    commit tag:"0.1.0"
    checkout main
    merge release-0.1
    checkout release-0.1
    branch hotfix
    commit
    checkout release-0.1
    merge hotfix tag:"0.1.1"
    checkout main
    merge release-0.1
    commit
Loading

releaseブランチをmainブランチにマージするときにコンフリクトが発生する場合

releaseブランチからbufferブランチを作成し、mainブランチをbufferブランチにマージしてから、bufferブランチをmainブランチにマージします。 このときの2回のマージは両方ともsquashせずにマージします。

%%{init: {'theme':'base', 'gitGraph': {'showCommitLabel': false}} }%%
gitGraph
    commit
    commit
    branch release-0.1
    commit tag:"0.1.0"
    checkout main
    merge release-0.1
    checkout release-0.1
    commit tag:"0.1.1"
    checkout main
    commit
    checkout release-0.1
    branch buffer-0.1
    merge main
    checkout main
    merge buffer-0.1
    commit
Loading

その他

過去の議論はこちらにあります。