Jak usunąć wszystkie pochodzenie Gita i tagi lokalne?

100

Jak usunąć tag git, który został już przekazany? Usuń wszystkie tagi zdalne (pochodzenie) git i Usuń wszystkie tagi lokalne git.

Amir Hosseinzadeh
źródło

Odpowiedzi:

249

1. Usuń wszystkie tagi lokalne. (Opcjonalnie zalecane)

git tag -d $(git tag -l)

2. Pobierz zdalne wszystkie tagi. (Opcjonalnie zalecane)

git fetch

3. Usuń wszystkie zdalne tagi.

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

4. Usuń wszystkie tagi lokalne.

git tag -d $(git tag -l)
Amir Hosseinzadeh
źródło
1
Jeśli otrzymałeś komunikat o błędzie „lista argumentów jest zbyt długa”, co prawdopodobnie byś zrobił, jeśli próbujesz wyczyścić tagi Użyjgit tag -d $(git tag -l | head 100)
rocketspacer.
1
Jaka jest różnica między opcją 1 a 4? Są oboje git tag -d $(git tag -l).
Michael Ozeryansky,
2
1) usuwa wszystkie tagi lokalne 2) pobiera wszystkie tagi zdalne, dając pełną listę tagów zdalnych lokalnie 3) usuwa tagi zdalne w odniesieniu do listy lokalnej 4) usuwa tagi lokalne z kroku 2
sentece
1
Myślę, że na 3. powinno byćgit push --delete origin $(git tag -l)
npocmaka
3
git tag -d $(git tag -l)nie udaje się na git 2.23 zerror: switch `l' is incompatible with --delete
turbanoff
7

W przypadku systemu Windows używającego wiersza polecenia:

Usuwanie lokalnych tagów:

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

Usuwanie zdalnych tagów:

for /f "tokens=* delims=" %a in ('git tag -l') do git push --delete origin %a
npocmaka
źródło
2
Podczas korzystania z PS:git tag -l | %{git tag -d $_}
Pent Ploompuu
1
W przypadku tagów lokalnych: git tag -l | xargs git tag -d
LongTP5
1
@ LongTP5 - xargsnie jest natywną komendą systemu Windows i należy ją zainstalować dodatkowo.
npocmaka