掲題の通り、添付画像のように3,4でマージを行うと、
developブランチのfeatureを切る前のコミットも一緒にmasterブランチへマージされます。
こちらは仕様なのでしょうか?
仕様です
私の認識では、featureで変更された内容だけがmasterにマージされると考えていたのですが。。。
feature
ブランチを master
ブランチへマージしたときは、
feature
ブランチの最新リビジョンに至るまでの全てのリビジョンの内、
master
ブランチに含まれていないリビジョンの更新内容がすべて反映されます
そのため、develop
ブランチの master
ブランチから分岐した後の各リビジョンの更新内容も
master
ブランチに適用されることになります
relase ブランチという考え方
いわゆる、Git flow
とか、A Successful Git Branch Model
というブランチの分け方は
develop
ブランチから feature
ブランチを作成しているので、
develop
ブランチの開発途中のコードが feature
ブランチに混入している状態になります
そのため、feature
ブランチを直接 master
ブランチにマージせず
develop
ブランチからQA、最終確認用の feature
ブランチを作成し、
それまでの各 feature
ブランチの変更を一度に master
にマージすることになります
参考: 【Git】推奨されているブランチの分け方まとめ | ultra code
develop ブランチからマージするのが難しいとき
feature
ブランチごとの制作の速度や規模に差があって
なかなか develop
ブランチが安定せず
release
ブランチの作成のタイミングが難しいこともあります
そのような場合は、master
ブランチから feature
ブランチを作成し、
CI を回すための develop
ブランチにはマージだけを行い、
開発が完了したら feature
ブランチを直接 release
もしくは master
にマージする方法があります
参考: 拡張 Git flow (Git Feature flow) | ultra code
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/19 10:28