movee(モビー) オノデラのブログ

(株)movee代表。週末は自社サービスを作っています。

developブランチとmainブランチのcommit差分解消について

複数メンバーで開発をしてるとconflictが起きたり、mergeしたくない他のbranchの変更souceがpull requestに含まれてしまったり。programの変更以上にconflict解消やpull requestの修正に時間がかかって工数が上がるとつらくなる。

 

Commitされてるけどpull requestに含めたくない場合はどうすればいいんだろう。

例えばbranch戦略でgit pull origin develop でdevelopブランチからlocal branchをcheckoutして開発する場合。仮にbranchAで開発すると、commit後にgit push origin branchA後にgithubでdevelop向けにpull requestすると自分のcommitだけになるはず。mainbranch向けのpull requestも同様。しかし、仮に他メンバーがdevelopのみにmergeしているcommitがあった場合はちょっと面倒になる。

f:id:onody00:20221123181242j:image

 

考えた方法は以下。

まずgit pull origin developしてcheckoutでlocalbranch作成、push、develop向けpull request作成してmergeする。これでdevelopブランチはOK.

そのあと、localAでmergeしたくないcommitをgit revert commiIDして、git push origin branchAする。これでmain向けのコードが準備できたので、localAからmain向けにpull requestを作ればcommitしたくない変更は除かれて、必要なcommitだけmergeできる。たぶん。