web-dev-qa-db-ja.com

GitFlowに切り替えた後、過去のSVNブランチをどうするか?

私は最近SVNリポジトリからGitリポジトリに移動し、GitFlowの使用を開始したチームの一員です。

私が理解しているように、これは完璧な世界では、Gitブランチの最小数は2つ(マスターと開発)にできることを意味します。実際には、リリースブランチとトピックブランチを考慮に入れたものになりますが、基本的な目標は、プロセスを合理化し、ブランチを常に開発、つまりマスターにマージすることです。今後のすべての作業で、これは問題ありません。

私の質問は、以前のSVNのやり方から来ています。 "Trunk"(現在は "Develop")ブランチに加えて、特定のリリース用に1つの顧客ブランチがたくさんありました。これらはすべてgit変換プロセスの一部として変換されたため、gitリポジトリは次のようになります。

sourcetree snapshot

Hotfix /、release /、およびtopic/*ブランチは、どうすればよいかを理解しています。しかし、他のすべての歴史的な枝はどうですか?以前のSVN規約では、顧客リリースブランチで作成したものはすべてまたトランクで実行されていたため、これらのブランチにはまだ開発されていない一意のコードはありませんなので、それらをマージして開発に戻す必要はまったくありません。

これらのブランチにタグを付けて(現在のヘッドで)、次に削除できますか? (おそらく、ポイント/タグの使用やGitFlow自体を誤解しているかもしれません)または、履歴を維持することに関心がある限り、レポジトリは常にこれらのレガシーブランチを持つように運命づけられていますか?

5
Sable Dreamer

ブランチを保持するか、タグに変換するかは、主に個人の好みの問題です。

Gitには2種類のタグがあります。コミットへの参照に過ぎない軽量タグと注釈付きタグです。注釈付きタグは、コミットなどのメッセージや署名を含めることができるgitオブジェクトです。

ブランチは、基本的に軽量タグと同じですが、ブランチにコミットを追加すると自動的に移動される点が異なります。 (ブランチ参照はgit-resetで手動で移動できます。)

これらの歴史的なブランチにコミットを追加しない場合、それらをタグに変換することは慣用的です:

  • ブランチがマスターにマージされていることを確認してください。
  • 新しいタグを作成する
  • 古いブランチを削除する

タグ名とブランチ名は異なる名前空間(refs/tagsおよびrefs/heads)タグの既存の名前を保持できるようにします。

6
amon