Auschecken von Tags
Wenn Sie die Versionen der Dateien, auf die ein Tag verweist, einsehen wollen, können Sie einen Git-Checkout durchführen, der allerdings Ihr Repository in den Zustand "detached HEAD" versetzt, was einige unangenehme Nebeneffekte hat:
$ git checkout 2.0.0
Note: checking out '2.0.0'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 99ada87... Merge pull request #89 from schacon/appendix-final
$ git checkout 2.0-beta-0.1
Previous HEAD position was 99ada87... Merge pull request #89 from schacon/appendix-final
HEAD is now at df3f601... add atlas.json and cover image
Wenn Sie im "detached HEAD"-Zustand Änderungen vornehmen und dann einen Commit erstellen, bleibt das Tag gleich, aber Ihr neuer Commit gehört zu keinem Zweig und ist nicht erreichbar, außer über den genauen Commit-Hash. Wenn Sie also Änderungen vornehmen müssen - z.B. wenn Sie einen Fehler in einer älteren Version beheben - werden Sie normalerweise einen Zweig erstellen wollen:
$ git checkout -b version2 v2.0.0
Switched to a new branch 'version2'
Wenn Sie dies tun und einen Commit machen, wird sich Ihr version2-Zweig leicht von Ihrem v2.0.0-Tag unterscheiden, da er mit Ihren neuen Änderungen fortschreiten wird.
11 Stimmen
Ich entwickle auf einem völlig anderen Projektarchiv als die Produktion, so dass meine Produktion keine Tags kannte, als ich versuchte, git checkout zu verwenden. Die Lösung war, "git pull --tags" zu verwenden und dann git checkout zu benutzen.
13 Stimmen
"git fetch --tags" funktioniert auch
18 Stimmen
Um zu vermeiden, dass das gesamte Repository geklont und dann zu einem Tag gewechselt wird, können Sie direkt eine
clone -b "Tagged release 1.1.5" http://git.abc.net/git/abs.git my_abc
. Dies funktioniert natürlich nur, wenn Sie keine Verzweigung mit demselben Namen haben (je nach Ihrer Methodik kann dies nie der Fall sein).3 Stimmen
@RedGlyph Danke, ich werde es versuchen. Sonst können wir das auch so machen.
git checkout -b new-branch tag-name
. Klonen Sie jetzt Ihren neuen Zweig. Wann immer wir wollen, können wir den neuen Zweig löschen.