2012-05-29 10 views
12

私たちは現在、必要のないばかげた量のブランチとタグがあるため、仕事中にgit repoをクリーンアップしています。gitタグを削除し、その削除をgit pullによって他人に伝播するにはどうすればよいですか?

私たちはブランチパートを行っていますが、タグパートは面倒です。

リモートでブランチを削除し、git pull --pruneを実行してローカルリポジトリ内のブランチを削除するようにチームに依頼しました。

問題は、タグでこれを行う方法がないようです。タグをリモートから簡単に削除することはできますが、git pullgc、またはremote pruneを実行すると、その変更が他のローカルリポジトリに伝播することはありません。

これはどのように行うのですか?

また、レポを再クローンするまで、人々はgit push --tagsを使用しないようにしなければなりませんか?

答えて

10

You can't。リモートで削除されたタグは、pull/fetch/etcでローカルに削除されません。

+0

ボール。しかし、乾杯! –

+1

@StephenMelrose、関心のある人たちと連絡を取っているように見えるので、すべてのタグを削除してから 'git fetch --tags $ remote'を実行するようにお願いします。もちろん、これは独自のローカル(非プッシュ)タグを持っていないと仮定していますが、これは "既知のグローバル"タグをすべて削除するスクリプトを準備し、すべての当事者にこのスクリプトを実行するように依頼することで解決できます彼らのローカルリポジトリ。 – kostix

4

私はプッシュして、タグを削除する簡単な方法はないと思うが、あなたは

for tag in $(git tag); do git tag -d ${tag}; done 

すべて地元のタグを削除するには、あなたの人々に指示し、そのべきそれらを同期するために、メインリポジトリから取得することができます生きていてください。

gitのタグはかなり破壊的ではなく、通常は同様の重要なマイルストーンとしてリリースされるため、デフォルトでプッシュする理由はありません。 (。しかし、これはもはやGitのバージョン1.9.0以降のとして動作します)

git fetch --tags --prune 

+0

ひどくハッキーですが、動作します。これを周りに渡さなければならない。乾杯。 –

+3

Hacky?ナー。程遠い。 –

10

が、これは正常に動作するようです--prune "は私のために働いていません私のためにうまく動作するエイリアスに私のcheの解決策を入れます:

+0

私はうまくいかなかった... – Haris

0

Gitが--tagsをフェッチ」ので:Gitリポジトリの古いバージョンでは

関連する問題