はじめに
基本的に新しいタスクを取り組むときに、main
またはmaster
ブランチから新しいブランチを切ると思うよね。しかし、チーム開発でよくある問題で、「このタスクがまだマージされないから、関連するタスクが進めないよ」という時にどうすればいい?
具体的な事例
タスク1とタスク2の関係がある。タスク1が終わらないとタスク2が進めない状態。タスク1を先にやって、PR作成して、レビュー待ちの状態になっている。今はタスク2をやると思ったらまだレビューを待っている。
解決方法
ブランチを切る
基本的にタスク1
(PR作成したブランチ)からタスク2のブランチを切る!
git graphを見るとこういう感じ
...---A---B---C master
\
D---F task1
ここでタスク2
のブランチを切る
...---A---B---C master
\
D---F task1
\
H---I task2
タスク1
のPRがマージされたら
...---A---B---C---M master
\ /
D---F task1
\
H---I task2
そこから、開発を進んでいくといいと思う!
しかし、タスク1
がレビューされて修正がある場合にどうしよう?
ここでは、タスク1
をマージされることを待って、master
ブランチからタスク2
にマージする。理由はmaster
にマージされるということは、修正が終わったため、修正した部分を今のブランチにマージして大丈夫!(M
はマージされたコミット)
...---A---B---C-------J master
\ / \
D---F---G \ task1
\ \
H---I---M task2
タスク2がmasterにマージする時に
タスク2
が完成して、master
にマージしようとして、直接master
にPRを作成する
...---A---B---C-------M-------N master
\ / /
D---F---G---H---I task2
|
task1
こういうgit historyになります!
また、タスク1の修正があっても、タスク2にマージされるので、コンフリクトが起きないはず!
最後に
gitを使って管理できるけど、レビューによって仕様が変わったり、修正点もあるから、結局タスク2で結構な修正があるかもしれない。一番いいのが、他のタスクがあれば、そっちに進んだ方がいいと思われるだろう。
あくまで、調べた回答と自分の経験で書いたので、もっといいやり方があれば教えてください!
参考