-
1:ID:rnMhrx · 2019-06-10

Gitの使い方で悩んでいます。たとえばマスターブランチ(A)でシステム開発しているとして、新機能を追加するので開発ブランチ(B)に切り替えたとします。

その後、開発中にバグが見つかったのでAを修正したいと思いました。この後に取る管理方法はどうなるのでしょうか?

1:Aに戻ってバグ修正し、Bも修正する
2:Bだけ修正し、新機能を追加した後に統合(C)ブランチを作る
3:Bを修正し、AのバグはGit管理外で修正する

など思いついたのですが、スタンダードなやり方はどれになるのでしょうか?

12 件の回答

2:ID:EZpktF · 2019-06-11

新機能開発前のコミットから新たにブランチを作って、マスターと開発両方にマージかな

3:ID:Ov7PpG · 2019-06-11

Gitって1をやる為のツールじゃないの?
1と2って優先順位の話だと思うんだけど、それでBに影響がでないなら、それでもいいんじゃないかな。
3は、Git運用してるなら論外だと思う。どうしてもそうしなければならない理由がない限り避けるべきじゃないのかな。

4:ID:6YUFtU · 2019-06-11

やり方はそれぞれだから一意の解はないと思う。
バグ修正の緊急度にもよるからなんとも言えない部分もある。
修正が急を要する場合は、マスターブランチからホットブランチをつくって、マスターとBブランチにマージする感じになるんじゃないかな。

5:ID:2w2blW · 2019-06-11

git flow学べばいいんでね?
そのまんまの答えがあるよ。

6:ID:NAbT/v · 2019-06-12

マスターブランチで、直接開発するなって話では?

7:ID: · 2019-06-12

Re:2
新たにブランチを作ってマージとのことですが、AもBも内容が異なるのにマージできるのでしょうか?

8:ID: · 2019-06-12

Re:3
1が一番最初に思いついたのでおっしゃるとおりだと思います。ただ、2つのブランチを修正することに違和感ありまして。(とはいえ、AもBも内容が異なるので、2つ修正するのは当然かも知れませんが)
3は一時的な対応ですかね。Bをリリースする前にAを使用する可能性がある場合、ブランチ外でやるのかな?と思ったりしました。でも、Git管理しているなら論外ですよね。

9:ID: · 2019-06-12

Re:4
バグが発生する際はだいたい緊急時が多かったりします。次期バージョンではバグ修正もしているとはいえ、現バージョンもしばらく使用する場合、バグ修正が必要になります。Aのバグ修正がBに反映されて、かつ競合しないようにするには、どう管理するればいいか?マージすればいいか分かっていないので質問しました。もう少し勉強します。

10:ID:EZpktF · 2019-06-12

Re:7
Aで発生しているバグとBで開発してる箇所が同じじゃなければ問題なくマージ出来る
開発中のものがバグと同じ箇所なら戻ってやりなおすべき

11:ID: · 2019-06-12

Re:10
質問の要件ですと、「Bの開発中にAのバグが見つかった」ですので、Aのブランチに戻りバグを修正。そしてBのブランチに戻りAの箇所にあったバグを修正、ということでしょうか?これが一番無難な気がしますが、二度手間な気もします。

12:ID:dJnlIz · 2019-06-13

自然に考える

マスターブランチ(A)でシステム開発しているとして、新機能を追加するので開発ブランチ(B)に切り替えたとします。
その後、開発中にバグが見つかったのでAを修正したいと思いました。
1:Aに戻ってバグ修正する。
2:BにいきAのバグ修正をマージする。

13:ID: · 2019-06-13

Re:12
やはりそれが自然であり、当然ですよね。「二度手間になる」と思わずに、「これが普通のやり方」だと思って納得します。みなさんどうもありがとうございました。

コメントの受付は終了しました。

一緒に読まれている質問

ページ上部に戻る