git ブランチを git タグに変換するための最善かつ最も安全な方法を探しています。手動で svn リポジトリを移植するとき、私は基本的にすべてのブランチをコピーし、マイナー リリース (1.1、1.2、1.3) ごとにブランチを作成しました。当時、私はタグよりもブランチの方が快適でした。現在、ブランチ 1.5、1.6、1.7、1.8 がありますが、常に 1 つのバージョンのコードしか展開されていないため、ホット フィックスをそのバージョンに入れる必要がある場合に備えて、最後のバージョンをブランチにするだけで十分です。展開されます。だから私はgitブランチをgitタグに変換する最良の方法を探しています。私には方法があると思いますが、それがどれほど良いかを確認しました。
これまでに行ったことは、タグに変換するブランチごとに、マスター ブランチにないブランチにコミットがないことを確認したので、次のようにしました。
git log 1.5 ^master
git log 1.6 ^master
git log 1.7 ^master
これらはすべて、これらのブランチのすべてのコミットがマスターに存在することを意味すると私が信じているものは何も返しません。これを行ったのは、マスターにないブランチにコミットがある場合、ブランチをタグに変換するときにそれらを失うと想定したためです。タグは 1 つのコミットへの単なる「ポインター」であり、開発ラインではありません。それは良さそうに見えますが、私の仮定は、私がしなければならないことです:
git tag 1.5v 1.5
git tag 1.6v 1.6
git tag 1.7v 1.7
次に、ブランチをローカルで削除し、それらの変更をリモート リポジトリにプッシュするだけです。これは git ブランチを git タグに変換する最良の方法ですか?
また、私が持っている1つの懸念は、誰かがたとえば1.7からブランチを作成し(誰もそうすべきではありません)、そのブランチを削除する変更をプルした場合、それらの変更を別のブランチ(マスターなど)にマージできるか、またはそのようなものでしょうか彼らが作成したブランチを壊しますか?これは、最後のバージョン (この場合は 1.8) 以外のブランチ バージョンからブランチを作成してはならないため、発生すべきではありませんが、人々は常に適切に手順に従っているとは限らないため、方法があることを確認したいと思います。これが発生した場合に修正します。