2014-09-12 6 views
11

Ich habe ein Tag bereits auf die Fernbedienung geschoben, und wenn ein anderer Benutzer das gleiche Tag erstellt und versucht zu drücken, scheitert Push, weil das Tag bereits auf der Fernbedienung existiert.Git Force Push-Tag, wenn das Tag bereits auf Remote existiert

Aber ich dachte, wenn ich - Force Tag Push mache, sollte es funktionieren. Aber das sehe ich nicht.

Ich denke, ich muss das tun.

Create tag 
Push tag -> If push fails -> Delete tag on remote 
          -> push tag again. 

Ist das korrekt? Ist Kraft-Push-Tag nicht dazu gedacht, sich darum zu kümmern?

Ich bin mit kommentierten Tags mit

git -a v1.0 -f -m "message" 

Dank für das Schauen.

+1

Haben Sie versucht, etwas wie git push Herkunft: refs/tags/tag_name das entfernte Tag zu entfernen? –

+0

Normalerweise können Sie ein Tag forcieren, aber eine entfernte Person kann es nicht zulassen. Normalerweise können Sie dann das Tag auf der Fernbedienung löschen, aber die Fernbedienung kann dies ebenfalls verbieten. Wenn die Fernbedienung ausreichend streng ist, müssen Sie jemanden mit direktem Zugang zur Aktualisierung der Fernbedienung anfordern. Siehe auch http://stackoverflow.com/questions/19298600/tag-ready-exists-in-the-remote-error-after-recreating-the-git-tag – torek

+0

Okay. Ich nahm an -f sollte immer zwingen, das Tag auf der Fernbedienung zu aktualisieren. Ich werde dies mit der Logik zum Löschen und Wiederherstellen tun, die ich hinzugefügt habe. Danke für deine Antworten. – user3606175

Antwort

19

In meinem Fall wies Remote einen Force Push zurück, wenn das Tag bereits existiert.

Also, wenn der Druck abgelehnt wurde, habe ich

git push --delete origin tagname 

und schob den neuen Tag.

Bitte beachten Sie Toreks Kommentar zu meiner Frage. Es gibt einen Fall, in dem die Fernbedienung auch das Löschen ablehnen kann.

Verwandte Themen