私は、nvieのgit-flowのモデルにほぼ従うgit分岐モデルを持つプロジェクトを持っています。
リリースブランチは、SemVer形式で名前が付けられます。たとえば、v1.5.2
リリースブランチに本番環境の青信号が与えられたら、マスターにマージしてタグを適用し、ブランチを削除してブランチを閉じます。
リリースブランチをすぐに削除するので、ブランチのタグ付けに同じ識別子を使用しました。例えば v1.5.2
リリースブランチを閉じるために使用するコマンドは次のとおりです。
$ git checkout master
$ git merge v1.5.2
$ git tag -a v1.5.2 -m "Version 1.5.2 - foo bar, baz, etc"
$ git branch -d v1.5.2
$ git branch -dr origin/v1.5.2
$ git push origin :v1.5.2
$ git push
$ git push --tags
これは大部分のケースで機能するようですが、gitリポジトリの別のインスタンス(別の開発マシン、ステージング環境など)がv1.5.2ブランチのローカルチェックアウトを持つシナリオで問題を引き起こしています。
このgit push origin :v1.5.2
コマンドは、リモートのブランチを削除しますが、すべてのリポジトリのローカルバージョンのブランチ(存在する場合)は削除しません。
v1.5.2
これらのレポジトリでチェックアウトを試みると、これはあいまいな参照につながります:
$ git checkout v1.5.2
warning: refname 'v1.5.2' is ambiguous.
ブランチに別の構文を使用せずにこれを回避できますか、例えばrelease-v1.5.2
、またはv1.5.2-rc
?
または避けられないので、削除されたブランチと同じ名前のタグを作成することは根本的に悪い考えですか?
git checkout
:ambigious参照がある場合、分岐上のタグをチェックアウトしますが、しかし、これは私がREF、見ている動作ではありませんgist.github.com/tommarshall/9376724。これはgitのより新しいバージョンで変更されたものですか?gitconfig
この動作を得るために設定できるフラグはありますか?