デプロイメント プロセスの一環として、git でタグを使用します。時々、リモート リポジトリからこれらのタグを削除してクリーンアップする必要があります。
これは非常に簡単です。 1 人のユーザーが 1 セットのコマンドでローカル タグとリモート タグを削除します。 両方の手順を組み合わせた小さなシェル スクリプトがあります。
2番目(3番目、4番目、...)のユーザーには、リモートに反映されなくなったローカル タグが設定されます。
git remote prune origin
リモート ブランチが削除されたローカルの追跡ブランチをクリーンアップする、同様のコマンドを探しています。
あるいは、リモート タグを一覧表示する簡単なコマンドを使用して、 経由で返されるローカル タグと比較することもできますgit tag -l
。
ベストアンサー1
これは素晴らしい質問です。私も同じことを疑問に思っていました。
スクリプトを書きたくなかったので、別の解決策を探しました。重要なのは、タグをローカルで削除し、git fetch を使用してリモート サーバーから「取り戻す」ことができることを発見することです。タグがリモートに存在しない場合は、削除されたままになります。
したがって、次の 2 行を順番に入力する必要があります。
git tag -l | xargs git tag -d
git fetch --tags
これら:
ローカル リポジトリからすべてのタグを削除します。 ちなみに、xargs は「tag -l」によって出力された各タグを「tag -d」のコマンド ラインに配置します。 これがないと、git は stdin を読み取らないため何も削除しません (愚かな git)。
リモート リポジトリからすべてのアクティブなタグを取得します。
これは Windows でも問題なく動作します。