私は C++ プロジェクトに git を使用しており、私は唯一の開発者です。コード履歴を維持することに加えて、新しい機能を元のコードに組み込む準備が整うまで、元のコードを変更せずに新しい機能をテストできるようにしたいので、git を使用しています。Github を使用していますが、開発者は私だけです。
だから、ここに私のコミット履歴がどのように見えるかを想像します(矢印は子コミットを示し、ブランチ間の矢印は暗示されています):
A1 ---> A2 ---> A3 B1 ---> B2
/ \ / \
X1 ---> X2 -----------> X3 ---> X4 -----> X5 ---> (...)
上記の履歴で、A
とB
は私が行った機能 (または変更) を表します。この歴史の中で、私は最初に取り組みA
、それを終えA
てから始めましB
た。もちろん、別々の新機能に並行して取り組んでいる場合もあるかもしれませんが、この架空の例では (そしておそらく私の実際の開発ではほとんどの場合)、機能は順番に取り組んでいます。
これに関連して、2 つの関連する質問があります。両方の質問を 1 つの SO 投稿にまとめるのが適切だと思います。
A
(1)とB
(および後続の新機能) の両方を開発するために使用される master と一緒に実行する「新機能」ブランチ (たとえば、テスト) を 1 つだけ作成することは理にかなっていますか? (そうであれば、マスターとテストを切り替え、テストをマスターにマージまたはリベースし、別の新機能に取り組むために再びテストに切り替えるというこのプロセスをどのように管理すればよいでしょうか?)
(2) 私が唯一の開発者であることを考えると、マスターに新しい機能を組み込むときに、マージまたはリベースする方が理にかなっていますか? 私はgitが初めてなので、理由を説明してください。答えが「場合による」の場合は、どちらかを決定する方法を説明してください。