私はgitlabからこのコマンドラインのタグリストを持っていますgitタグ-l。gitlabに2つの最新のタグを保存し、最も古いタグを削除するには?
入力:
echo listTags = $(git tag -l)
listTags= v0.0.1 v0.0.2 v0.1.0 v0.1.0-1 v0.1.0-2 v0.1.0-3 v0.1.0-4 v0.1.0-5
for tag in 'git tag -l'
do
git tag -d $tag
git push -v origin :refs/tags/$tag
done
私はすべての最古のプレリリースバージョンを削除し、2最新
出力維持したい:
echo listTags = $(git tag -l)
listTags= v0.0.1 v0.0.2 v0.1.0 v0.1.0-4 v0.1.0-5
をどのように私は、スクリプトを使用してこの問題を解決することができますシェル?
私が何をしたいことに従って、削除するタグかを選択するために一定のルールを次のスクリプトであると仮定いくつかのルールには、見えるタグに基づいています。あなたの例では、ルールはテキスト説明が示唆しているものよりも複雑であると思います。つまり、Nir Gabayの答えよりも複雑なものを探していると思います。その場合、ルールが何であるかをより明確に説明する必要があると思います。また、私は強くこれがシェルスクリプトだけでできることを超えていると強く疑う。 perlはもっと良い考えです。 –
@MarkAdelsberger:まさに、私はrepo gitlabから未使用のプレリリースタグを自動的に削除するためにスクリプトを実行したいと思っています。またリリースバージョンを削除せずに最新のプレリリースを保持する必要があります。私はNir Gabayの答え、それがリリースとプレリリース版を削除すると思います –