Passa a un altro tag Git


180

Come posso controllare la versione versione / tag 1.1.4 del bundle rspec ?

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'

Risposte:


336

Clona il repository come di consueto:

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

Quindi controlla il tag che desideri in questo modo:

git checkout tags/1.1.4

Questo verificherà il tag in uno stato di "HEAD distaccato". In questo stato, "puoi guardarti intorno, apportare modifiche sperimentali e impegnarle e [scartare quelle commit] senza influire su alcun ramo eseguendo un altro checkout".

Per conservare le modifiche apportate, spostale in una nuova filiale:

git checkout -b 1.1.4-jspooner

Puoi tornare al ramo principale usando:

git checkout master

Nota, come menzionato nella prima revisione di questa risposta, esiste un altro modo per verificare un tag:

git checkout 1.1.4

Ma come è stato menzionato in un commento, se hai un ramo con lo stesso nome, questo si tradurrà in git che ti avverte che il refname è ambiguo e che controlla il ramo per impostazione predefinita:

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

La scorciatoia può essere utilizzata in modo sicuro se il repository non condivide i nomi tra rami e tag.


78
Per gli spettatori driveby, questa risposta è ambigua. Se c'è un ramo e un tag chiamato 1.1.4. Git verificherà il ramo, non il tag. Per verificare esplicitamente il tag, git checkout tags/1.1.4
procedi come segue

2
Come torniamo al "tronco"?
Vinay W,

3
@VinayWadhwa git checkout master
ABCD.ca

1
E per vedere i tag, basta rilasciare git tag.
ACK_stoverflow

8

A partire da Git v2.23.0 (agosto 2019), git switchè preferito rispetto git checkoutal semplice cambio di rami / tag. Immagino che abbiano fatto questo dato che git checkoutavevano due funzioni: cambiare i rami e ripristinare i file. Quindi nella v2.23.0, hanno aggiunto due nuovi comandi git switche git restore, per separare queste preoccupazioni. Vorrei prevedere ad un certo punto in futuro, git checkoutsarà deprecato.

Per passare a un ramo normale, utilizzare git switch <branch-name>. Per passare a un oggetto simile a commit, inclusi singoli commit e tag, utilizzare git switch --detach <commitish>, dove si <commitish>trova il nome del tag o il numero di commit.

L' --detachopzione ti costringe a riconoscere che sei in una modalità di "ispezione ed esperimenti scartabili" . Per creare un nuovo ramo dal commit a cui stai passando, usa git switch -c <new-branch> <start-point>.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.