Wechseln Sie zu einem anderen Git-Tag

180

Wie checke ich die Versionsversion / das Tag 1.1.4 des rspec-Bundles aus ?

cd ~/Library/Application\ Support/TextMate/Bundles/
git clone git://github.com/rspec/rspec-tmbundle.git RSpec.tmbundle
osascript -e 'tell app "TextMate" to reload bundles'
jspooner
quelle

Antworten:

336

Klonen Sie das Repository wie gewohnt:

git clone git://github.com/rspec/rspec-tmbundle.git RSpec.tmbundle

Überprüfen Sie dann das gewünschte Tag wie folgt:

git checkout tags/1.1.4

Dadurch wird das Tag in einem Status "getrennter KOPF" ausgecheckt. In diesem Zustand "können Sie sich umschauen, experimentelle Änderungen vornehmen und diese festschreiben und [diese Festschreibungen verwerfen], ohne Auswirkungen auf Zweige zu haben, indem Sie eine weitere Prüfung durchführen".

Verschieben Sie alle vorgenommenen Änderungen in einen neuen Zweig:

git checkout -b 1.1.4-jspooner

Sie können zum Hauptzweig zurückkehren, indem Sie Folgendes verwenden:

git checkout master

Beachten Sie, wie in der ersten Überarbeitung dieser Antwort erwähnt, dass es eine andere Möglichkeit gibt, ein Tag auszuchecken:

git checkout 1.1.4

Wie in einem Kommentar erwähnt, führt dies dazu, dass git Sie warnt, dass der Referenzname nicht eindeutig ist, und dass der Zweig standardmäßig ausgecheckt wird, wenn Sie einen Zweig mit demselben Namen haben:

warning: refname 'test' is ambiguous.
Switched to branch '1.1.4'

Die Kurzform kann sicher verwendet werden, wenn das Repository keine Namen zwischen Zweigen und Tags teilt.

Fake Code Monkey Rashid
quelle
78
Für Driveby-Zuschauer ist diese Antwort nicht eindeutig. Wenn es einen Zweig und ein Tag gibt, die aufgerufen werden 1.1.4. Git checkt den Zweig aus, nicht das Tag. Um das Tag explizit git checkout tags/1.1.4
auszuchecken,
2
Wie kommen wir zurück zum "Kofferraum"?
Vinay W
3
@ VinayWadhwa Git Checkout Master
ABCD.ca
1
Und um die Tags zu sehen, geben Sie sie einfach aus git tag.
ACK_stoverflow
7

Ab Git v2.23.0 (August 2019) wird git switches bevorzugt, git checkoutwenn Sie einfach Zweige / Tags wechseln. Ich vermute, sie haben dies getan, da git checkoutsie zwei Funktionen hatten: zum Wechseln von Zweigen und zum Wiederherstellen von Dateien. In Version 2.23.0 haben sie zwei neue Befehle hinzugefügt git switch, und git restore, um diese Bedenken zu trennen. Ich würde irgendwann in der Zukunft vorhersagen, git checkoutwird veraltet sein.

Verwenden Sie, um zu einem normalen Zweig zu wechseln git switch <branch-name>. Zur Umstellung auf eine Commit-ähnliches Objekt, einschließlich einzelnen Commits und Tags, Verwendung git switch --detach <commitish>, wo <commitish>ist der Tag - Name oder begehen Nummer.

Die --detachOption zwingt Sie zu erkennen, dass Sie sich in einem Modus von „Inspektion und wegwerfbaren Experimenten“ befinden . Verwenden Sie, um aus dem Commitish, zu dem Sie wechseln, einen neuen Zweig zu erstellen git switch -c <new-branch> <start-point>.

chharvey
quelle