Wie man einen Git-Tag auscheckt (Schritt-für-Schritt-Anleitung)
Dieser Leitfaden erklärt das Auschecken von Git-Tags, den Detached-HEAD-Zustand, das Erstellen von Branches aus Tags und das sichere Fetchen von Remote-Tags.
Git-Tags werden verwendet, um spezifische Commits in Ihrem Repository zu markieren, oft für Releases. Wenn Sie einen Tag auschecken müssen, zeigt Ihnen diese Anleitung, wie das geht.
Wichtige Erkenntnisse
- Mit
git checkout <tag>können Sie den Code an einem bestimmten Tag anzeigen. - Sie befinden sich in einem detached HEAD-Zustand, was bedeutet, dass Änderungen nicht mit einem Branch verknüpft werden.
- Für aktive Entwicklung verwenden Sie
git switch -c <branch> <tag>, um einen neuen Branch aus dem Tag zu erstellen.
1. Verfügbare Tags auflisten
Um alle Tags in Ihrem Git-Repository anzuzeigen, führen Sie aus:
git tag
Für detaillierte Tag-Informationen:
git show <tag-name>
2. Einen Tag auschecken
Um Ihr Arbeitsverzeichnis in den Zustand eines Tags zu versetzen:
git checkout <tag-name>
Beispiel:
git checkout v1.2.3
Warnung vor detached HEAD
Beim Auschecken eines Tags versetzt Sie Git in einen detached HEAD-Zustand, was bedeutet:
- Sie können Dateien anzeigen und ändern, aber neue Commits gehören nicht zu einem Branch.
- Um zu Ihrem Branch zurückzukehren:
git checkout main # Oder der Name Ihres Arbeitsbranches
3. Einen Tag auschecken und einen Branch erstellen (empfohlen)
Wenn Sie basierend auf einem Tag Änderungen vornehmen möchten, erstellen Sie einen neuen Branch daraus:
git checkout -b my-feature-branch <tag-name>
Oder mit dem neueren Befehl git switch:
git switch -c my-feature-branch <tag-name>
4. Einen Remote-Tag auschecken
Um einen Tag aus einem Remote-Repository auszuchecken:
-
Alle Tags abrufen:
git fetch --tags -
Den Tag auschecken:
git checkout tags/<tag-name>
5. Zurück zu einem Branch wechseln
Wenn Sie sich in einem detached HEAD-Zustand befinden und zurückkehren möchten:
git checkout main # Oder ein beliebiger Branch-Name
Oder mit git switch:
git switch main
FAQs
Warum versetzt mich `git checkout <tag>` in einen detached HEAD-Zustand?
Weil ein Tag kein Branch ist - es ist nur ein Zeiger auf einen Commit. Sie müssen einen Branch erstellen, wenn Sie Änderungen vornehmen möchten.
Kann ich Änderungen pushen, nachdem ich einen Tag ausgecheckt habe?
Nicht direkt. Sie müssen zuerst einen Branch mit `git checkout -b new-branch <tag>` erstellen.
Was ist der Unterschied zwischen `git checkout` und `git switch`?
`git checkout` ist älter und wird sowohl für Branches als auch für Dateien verwendet. `git switch` ist eine neuere, übersichtlichere Alternative zum Wechseln von Branches.
Fazit
Das Auschecken eines Git-Tags ist nützlich, um eine Momentaufnahme Ihres Repositorys zu einem bestimmten Zeitpunkt anzuzeigen. Da Tags jedoch keine Branches sind, sollten Sie einen neuen Branch erstellen, wenn Sie Änderungen vornehmen müssen.