Lösung zu Schritt 1 - Tags erstellen
Erstelle ein einfaches Tag simple1
auf HEAD
und ein annotated Tag annotated1
auf HEAD~1
. Sieh zuerst das Log und dann beide Tags einzeln an (git show an
).
mein-klon $ git tag simple1
mein-klon $ git tag annotated1 HEAD~1 -m 'Mit Beschreibung'
mein-klon $ git log --oneline --decorate
af500f3 (HEAD -> main, tag: simple1, origin/main, origin/HEAD) : Just editing
d4d7875 (tag: v0.1, tag: annotated1) Initial edit before cloning
mein-klon $ git show simple1 --no-patch
commit af500f303ef2cc7b770c560190d4072d2c879972
Author: bjoern <kapitel26blog@gmail.com>
Date: Thu Jul 29 00:00:00 2021 +0000
: Just editing
Beim annotated Tag werden zusätzlich Beschreibung und Metadaten angezeigt:
mein-klon $ git show annotated1 --no-patch
tag annotated1
Tagger: bjoern <kapitel26blog@gmail.com>
Date: Thu Jul 29 00:00:00 2021 +0000
Mit Beschreibung
commit d4d7875a179ac89a40ed04b1e6cf33a5111fcedf
Author: bjoern <kapitel26blog@gmail.com>
Date: Thu Jul 29 00:00:00 2021 +0000
Initial edit before cloning
Lösung zu Schritt 2 - Tags holen
Einfach per pull.
mein-klon $ git pull
Updating af500f3..06d348f
Fast-forward
foobar | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
From ../blessed
af500f3..06d348f main -> origin/main
* [new tag] v0.2 -> v0.2
* [new tag] v0.3 -> v0.3
* [new tag] v1.0 -> v1.0
Lösung zu Schritt 3 - Tags pushen
Beim einfachen git push
werden keine Tags übertragen. Übertrage zunächste gezielt das Tag simple1
mit einem Push und danach alle weiteren Tags mit einem weiteren Push
mein-klon $ git push
Everything up-to-date
mein-klon $ git push origin simple1
To ../blessed.git
* [new tag] simple1 -> simple1
mein-klon $ git push --tags
To ../blessed.git
* [new tag] annotated1 -> annotated1
Lösung zu Schritt 4 - Manipulieren
Überschreibe das Tag v0.1
, so dass es auf denHEAD
zeigt. Pushe das Tag. Gehe in das Verzeichnis ../anderer-klon
und hole das Tag mit pull. Schaue ins Log, um zu überprüfen, dass das Tag aktualisiert wurde.
mein-klon $ # Something else
mein-klon $ git commit -am "`foobar`: Something else "
[main 038ab4f] : Something else
1 file changed, 1 insertion(+), 1 deletion(-)
/bin/bash: line 1: foobar: command not found
mein-klon $ git tag v0.1 -f -m 'Moved later on'
Updated tag 'v0.1' (was 3765c1c)
mein-klon $ git push origin v0.1
To ../blessed.git
! [rejected] v0.1 -> v0.1 (already exists)
error: failed to push some refs to '../blessed.git'
hint: Updates were rejected because the tag already exists in the remote.
mein-klon $ git push -f origin v0.1
To ../blessed.git
+ 3765c1c...1f8ce21 v0.1 -> v0.1 (forced update)
mein-klon $ git log --oneline --decorate -3
038ab4f (HEAD -> main, tag: v0.1) : Something else
06d348f (origin/main, origin/HEAD) : Do something
27e367e (tag: v1.0) : Improve even more
.. $ cd anderer-klon
anderer-klon $ git log --oneline --decorate
06d348f (HEAD -> main, origin/main) : Do something
27e367e (tag: v1.0) : Improve even more
ccb6eea : Improve it
b9ffddc (tag: v0.3) : First edit after cloning
af500f3 : Just editing
d4d7875 (tag: v0.2, tag: v0.1) Initial edit before cloning
anderer-klon $ git pull
Already up to date.
From ../blessed
* [new tag] annotated1 -> annotated1
* [new tag] simple1 -> simple1
anderer-klon $ git pull --tags
From ../blessed
! [rejected] v0.1 -> v0.1 (would clobber existing tag)
anderer-klon $ git pull -f --tags
Already up to date.
From ../blessed
t [tag update] v0.1 -> v0.1
anderer-klon $ git log --oneline --decorate
06d348f (HEAD -> main, origin/main) : Do something
27e367e (tag: v1.0) : Improve even more
ccb6eea : Improve it
b9ffddc (tag: v0.3) : First edit after cloning
af500f3 (tag: simple1) : Just editing
d4d7875 (tag: v0.2, tag: annotated1) Initial edit before cloning
anderer-klon $ cd ..