Я хочу удалить все теги из репозитория Git. Как я могу это сделать?
Используя git tag -d tagname
удаление тега tagname
локально, и используя git push --tags
я обновляю теги на провайдере git.
Я попытался:
git tag -d *
Но я вижу, что *
означает файлы из текущего каталога.
$ git tag -d *
error: tag 'file1' not found.
error: tag 'file2' not found.
...
Считайте, что у меня много тегов, и я хочу удалить их, все.
git tag -l | xargs -n 1 git push --delete origin
чтобы удалить их с пульта.Чтобы удалить удаленные теги (перед удалением локальных тегов), просто выполните:
а затем удалите локальные копии:
источник
Может быть более эффективно нажать удалить все теги в одной команде. Особенно, если у вас есть несколько сотен.
В подходящей оболочке не-Windows удалите все удаленные теги:
Затем удалите все локальные теги:
Это должно быть хорошо, если у вас нет
'
в именах тегов. Для этого следующие команды должны быть в порядке.Вероятно, существуют другие способы получения списка строк, заключения в кавычки, превращения их в одну строку и последующей передачи этой строки команде. Учитывая, что это идеальная среда для снятия шкур с кошек и все такое.
источник
xargs -L 1
?git tag
возвращает теги, по одному на строку, а затемxargs -L 1
выводит их по одному на строку, так для чего это нужно?Для пользователей Windows, использующих PowerShell:
Это удаляет все теги, возвращаемые
git tag
путем выполненияgit tag -d
для каждой возвращенной строки.источник
Добавление к ответу Стефана, который отсутствовал, как удалить теги с удаленного. Для Windows PowerShell вы можете запустить это, чтобы сначала удалить удаленные теги, а затем локальные теги.
источник
Если у вас нет тегов в локальном репо, вы можете удалить удаленные теги без необходимости переносить их в локальное репо.
Не забудьте заменить «origin» на имя вашего удаленного обработчика.
источник
Для пользователей Windows:
Это удаляет все локальные теги, выполняя git tag и передавая этот список в git tag -d:
(Найдено на: https://gist.github.com/RandomArray/fdaa427878952d9768b0 )
источник
Вы также можете использовать:
источник
Так как все эти опции работают только в Linux, вот эквивалент Windows для тех, кто имеет дело с этим:
источник
Я должен удалить теги с префиксом
например, я должен удалить теги v0.0.1, v0.0.2, v0.0.3, v0.0.4, v0.0.5
Чтобы перечислить все теги с префиксом
Чтобы удалить теги
Вот как работает первое утверждение
источник
Powershell v7 поддерживает параллельный foreach, если у вас есть много тегов upstream (origin), которые необходимо удалить:
источник