Ich möchte alle Tags aus einem Git-Repository löschen. Wie kann ich das machen?
Verwenden Sie git tag -d tagname
zum tagname
lokalen Löschen des Tags und zum git push --tags
Aktualisieren der Tags auf dem Git-Anbieter.
Ich habe es versucht:
git tag -d *
Aber ich sehe, das *
bedeutet die Dateien aus dem aktuellen Verzeichnis.
$ git tag -d *
error: tag 'file1' not found.
error: tag 'file2' not found.
...
Bedenken Sie, dass ich viele Tags habe und sie alle löschen möchte.
git tag -l | xargs -n 1 git push --delete origin
sie von der Fernbedienung gelöscht.Um entfernte Tags zu löschen (bevor Sie lokale Tags löschen), gehen Sie einfach wie folgt vor:
und löschen Sie dann die lokalen Kopien:
quelle
Es kann effizienter sein, alle Tags in einem Befehl zu löschen. Besonders wenn Sie mehrere hundert haben.
Löschen Sie in einer geeigneten Nicht-Windows-Shell alle Remote-Tags:
Löschen Sie dann alle lokalen Tags:
Dies sollte in Ordnung sein, solange Sie keine
'
in Ihren Tag-Namen haben. Dafür sollten die folgenden Befehle OK sein.Es gibt wahrscheinlich auch andere Möglichkeiten, eine Liste von Zeilen zu erstellen, sie in Anführungszeichen zu setzen, sie zu einer einzelnen Zeile zu machen und diese Zeile dann an einen Befehl zu übergeben. In Anbetracht dessen ist dies die ultimative Umgebung für das Enthäuten von Katzen.
quelle
xargs -L 1
?git tag
Gibt die Tags zurück, eines pro Zeile, undxargs -L 1
gibt sie dann einmal pro Zeile aus. Wozu also?Für Windows-Benutzer, die PowerShell verwenden:
Dies löscht alle zurück Tags von
git tag
durch Ausführengit tag -d
zurück für jede Zeile.quelle
Hinzufügen zu Stefans Antwort, bei der es fehlte, Tags von der Fernbedienung zu löschen. Bei Windows Powershell können Sie dies ausführen, um zuerst die Remote-Tags und anschließend die lokalen Tags zu löschen.
quelle
Wenn Sie die Tags nicht in Ihrem lokalen Repo haben, können Sie Remote-Tags löschen, ohne sie in Ihr lokales Repo bringen zu müssen.
Vergessen Sie nicht, "origin" durch den Namen Ihres Remote-Handlers zu ersetzen.
quelle
Für Windows-Benutzer:
Dadurch werden alle lokalen Tags gelöscht, indem das Git-Tag ausgeführt und diese Liste dem Git-Tag -d zugeführt wird:
(Gefunden unter: https://gist.github.com/RandomArray/fdaa427878952d9768b0 )
quelle
Sie können auch verwenden:
quelle
Da all diese Optionen nur unter Linux funktionieren, ist hier das Windows-Äquivalent für alle, die sich damit befassen müssen:
quelle
Ich muss die Tags mit Präfix löschen
Zum Beispiel muss ich die Tags v0.0.1, v0.0.2, v0.0.3, v0.0.4, v0.0.5 löschen
Zum Auflisten aller Tags mit Präfix
Tags löschen
So funktioniert die erste Aussage
quelle
Powershell v7 unterstützt parallel foreach, wenn Sie viele Upstream-Tags (Ursprungs-Tags) haben, die Sie löschen müssen:
quelle