it-swarm.com.de

Fügen Sie dem vorhandenen Git-Tag ein neues Commit hinzu

Ich habe ein Git-Tag als v1.1 using erstellt 

git tag -a v1.1 -m 'my version 1.1'

und ich habe diesen Tag gedrückt. Später habe ich einige Änderungen an v1.1 vorgenommen. Wenn ich nun neue Änderungen drücke und das git-Tag mit git describe überprüfe, wird mir v1.1-g2dcc97 angezeigt.

Wie kann ich mein neues Commit zum vorhandenen Tag hinzufügen?

20
PVH

Sie können ein neues Commit nicht in ein vorhandenes Tag einfügen, ohne eine wichtige Git-Richtlinie zu brechen: Nie (*) Modify-Commits ändern, die Sie veröffentlicht haben.

Tags in Git sind nicht dazu gedacht, veränderbar zu sein. Wenn Sie einen Tag nach draußen drücken, lassen Sie ihn in Ruhe.

Sie können jedoch einige Änderungen zu v1.1 hinzufügen und etwas wie v1.1.1 oder v1.2 freigeben. Eine Möglichkeit, dies zu tun, wäre

# Create a new branch from tag v1.1
git checkout -b newbranch v1.1

# Do some work and commit it

# Create a new tag from your work
git tag -a -m "Tag version 1.1.1, a bugfix release" v1.1.1

(*) Es sei denn, Sie haben einen wirklich besonderen Grund dafür, und nur, wenn Sie die Implikationen vollständig verstanden haben und auch dann keine Gewohnheit haben.

27
Chris

Wenn Sie absolut das Tag "verschieben" müssen, anstatt ein neues zu erstellen, können Sie Folgendes tun: 

NB: Wie @Chris gesagt, stellen Sie sicher, dass Sie einen guten Grund haben, kein neues Tag erstellen zu wollen, da es am besten ist, ein neues zu erstellen

1. Das Tag auschecken (ein abgetrennter KOPF)

git checkout tag/v1.1

2. Erstellen und Auschecken eines Zweigs dieses Tags (d. H. Verzweigen des Tags)

git checkout -b my-tagged-branch

*** do work and commit changes ***

3. Zum entfernten Zweig wechseln. 

git Push  -u Origin my-tagged-branch

Falls erforderlich, fügen Sie die Verzweigung in andere Verzweigungen ein, die geändert werden müssen (z. B. bei einer Fehlerbehebung).

4. Löschen Sie das Tag, solange es noch my-tagged-branch ist

git tag -d v1.1

5. Erzeuge das Tag erneut: Dadurch wird das Tag "verschoben", um auf den letzten Commit in diesem Zweig zu zeigen

git tag v1.1

6. Löschen Sie das Tag auf der Fernbedienung

git Push Origin :v1.1

7. Erstellt den Tag auf der Fernbedienung

git Push Origin v1.1

3
papigee