Wie entferne ich alle Git-Ursprünge und lokalen Tags?

99

Wie entferne ich ein Git-Tag, das bereits verschoben wurde? Löschen Sie alle git remote (origin) Tags und löschen Sie alle git local Tags.

Amir Hosseinzadeh
quelle

Antworten:

243

1. Löschen Sie alle lokalen Tags. (Optional empfohlen)

git tag -d $(git tag -l)

2. Remote-Tags abrufen Alle Tags. (Optional empfohlen)

git fetch

3. Löschen Sie alle Remote-Tags.

git push origin --delete $(git tag -l) # Pushing once should be faster than multiple times

4. Löschen Sie alle lokalen Tags.

git tag -d $(git tag -l)
Amir Hosseinzadeh
quelle
1
Wenn Sie die Fehlermeldung "Argumentliste zu lang" erhalten haben, die Sie wahrscheinlich würden, wenn Sie versuchen, Tags zu löschen. Verwenden Siegit tag -d $(git tag -l | head 100)
rocketspacer
1
Was ist der Unterschied zwischen Option 1 und 4? Sie sind beide git tag -d $(git tag -l).
Michael Ozeryansky
2
1) löscht alle Ihre lokalen Tags 2) ruft alle Remote-Tags ab und gibt Ihnen eine vollständige Liste der Remote-Tags lokal 3) löscht die Remote-Tags unter Bezugnahme auf die lokale Liste 4) löscht die lokalen Tags aus Schritt 2
seit dem
1
Ich denke am 3. sollte es seingit push --delete origin $(git tag -l)
npocmaka
2
git tag -d $(git tag -l)scheitert an Git 2.23 miterror: switch `l' is incompatible with --delete
Turbanoff
6

Für Windows mit Eingabeaufforderung:

Lokale Tags löschen:

for /f "tokens=* delims=" %a in ('git tag -l') do git tag -d %a

Remote-Tags löschen:

for /f "tokens=* delims=" %a in ('git tag -l') do git push --delete origin %a
npocmaka
quelle
2
Bei Verwendung von PS:git tag -l | %{git tag -d $_}
Pent Ploompuu
1
Für lokale Tags: git tag -l | xargs git tag -d
LongTP5
1
@ LongTP5 - xargsist kein nativer Windows-Befehl und sollte zusätzlich installiert werden.
Npocmaka