Chcę usunąć wszystkie tagi z repozytorium Git. Jak mogę to zrobić?
Za git tag -d tagname
pomocą tagname
lokalnego usuwania tagu i za pomocą git push --tags
I aktualizuję tagi na dostawcy git.
Próbowałem:
git tag -d *
Ale widzę, że *
to oznacza pliki z bieżącego katalogu.
$ git tag -d *
error: tag 'file1' not found.
error: tag 'file2' not found.
...
Rozważ, że mam dużo tagów i chcę je wszystkie usunąć.
git tag -l | xargs -n 1 git push --delete origin
, aby usunąć je z pilota.Aby usunąć tagi zdalne (przed usunięciem tagów lokalnych):
a następnie usuń lokalne kopie:
źródło
Bardziej wydajne może być usunięcie wszystkich tagów za pomocą jednego polecenia. Zwłaszcza jeśli masz kilkaset.
W odpowiedniej powłoce innej niż Windows usuń wszystkie zdalne tagi:
Następnie usuń wszystkie lokalne tagi:
Powinno to być OK, o ile nie masz
'
w nazwie tagu. W tym celu następujące polecenia powinny być OK.Prawdopodobnie istnieją inne sposoby pobierania listy linii, zawijania ich w cudzysłowy, tworzenia pojedynczej linii, a następnie przekazywania tej linii do polecenia. Biorąc to pod uwagę, jest to najlepsze środowisko do skórowania kotów.
źródło
xargs -L 1
zrobić?git tag
zwraca tagi, po jednym w wierszu, a następniexargs -L 1
wysyła je po jednym w wierszu, więc po co to jest?Użytkownicy systemu Windows korzystający z programu PowerShell:
Spowoduje to usunięcie wszystkich tagów zwróconych
git tag
przez wykonaniegit tag -d
dla każdej zwróconej linii.źródło
Dodanie do odpowiedzi Stefana, w której brakowało sposobu usuwania tagów ze zdalnego. W przypadku Windows PowerShell możesz uruchomić to, aby najpierw usunąć tagi zdalne, a następnie tagi lokalne.
źródło
Jeśli nie masz tagów w lokalnym repozytorium, możesz usunąć tagi zdalne bez konieczności przenoszenia go do lokalnego repozytorium.
Nie zapomnij zastąpić słowa „origin” nazwą użytkownika zdalnego.
źródło
Dla użytkowników systemu Windows:
Spowoduje to usunięcie wszystkich lokalnych tagów poprzez uruchomienie git tag i przekazanie tej listy do git tag -d:
(Znalezione na: https://gist.github.com/RandomArray/fdaa427878952d9768b0 )
źródło
Możesz także użyć:
źródło
Ponieważ wszystkie te opcje działają tylko w systemie Linux, oto odpowiednik systemu Windows dla każdego, kto musi sobie z tym poradzić:
źródło
Muszę usunąć tagi z prefiksem
na przykład muszę usunąć tagi v0.0.1, v0.0.2, v0.0.3, v0.0.4, v0.0.5
Aby wyświetlić wszystkie tagi z prefiksem
Aby usunąć tagi
Tak działa pierwsze zdanie
źródło
Program Powershell v7 obsługuje równoległe foreach, jeśli masz wiele znaczników w górę (pochodzenia), które musisz usunąć:
źródło