私の理解から、機能ブランチを作成する利点の1つは、コミットの大きなグループが開発ブランチにマージされた場所を簡単に確認できることです。
機能ブランチが完成したら、開発には不要になるため、機能ブランチを削除することをお勧めします。ブランチが削除された後も、グラフには「feature/my-fancy-feature」という注釈が付けられ、マージされますか?
「機能ブランチが完成したら、その機能ブランチは開発に不要になるため、削除することをお勧めします。」
ここで「仕上げ」は曖昧な表現です。私があなたの質問を完全にカバーすることを確認するために、私はあなたが次のいずれかのケースを意味したと信じています:
(1)feature/my-fancy-feature
をdiscardしたい場合:
git branch -d feature/my-fancy-feature
(2)feature/my-fancy-feature
をmergeするつもりなら:
git flow feature finish my-fancy-feature
「ブランチが削除されても、グラフにはまだ「feature/my-fancy-feature」という注釈が付けられ、マージされますか?」
状況によって異なります(結果はgit-flow
に依存しません)。 git log
は、特定のブランチ名を提供しません(例:feature/my-fancy-feature
)。メッセージのあるコミット履歴のみが表示されます。 fast-forwardマージとnon-fast-forwardマージの違いを思い出してください:
fast-forward-merge(feature/my-fancy-feature
で行われたすべてのコミット履歴は残ります):
git merge
non-fast-forward-merge(feature/my-fancy-feature
で行われたすべてのコミット履歴は失われます):
git merge --no-ff
Vincent Driessenの 記事 の次の図を参照してください。
SourceTreeでnon-fast-forward機能を有効にするには、checkMenubar-> SourceTree -> Preferences -> Git
から見つけられる以下のグローバル設定オプション:
詳細については、SourceTreeの「ヘルプセンター」からの抜粋を見つけました。
マージ時の早送り動作を無効にします。つまり、受信ブランチに他の変更があるかどうかに関係なく、明示的なマージコミットが常に作成されます。これは、すべてのケースで明示的に別の開発ラインを維持したい場合に役立ちます。
お役に立てば幸いです。
いいえ、コミットメッセージのみが残ります。ブランチの名前を保持する場合は、必ずマージコミットに含めるか、マージコミットに関連する名前を明示的にタグ付けしてください。
あなたの最善の策は、コミットメッセージの外でこのデータを保持することについて心配するのをやめることです。機能ブランチをマージするときには、機能ブランチで作業が行われたことを気にする必要はありません。