Mudar para outra tag Git

180

Como faço para verificar a versão / tag da versão 1.1.4 do pacote 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'
jspooner
fonte

Respostas:

336

Clone o repositório normalmente:

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

Em seguida, efetue o check-out da tag desejada:

git checkout tags/1.1.4

Isso fará o checkout da tag no estado 'desanexado HEAD'. Nesse estado, "você pode olhar em volta, fazer alterações experimentais e enviá-las, e [descartar essas confirmações] sem afetar nenhuma ramificação executando outro checkout".

Para manter as alterações feitas, mova-as para uma nova ramificação:

git checkout -b 1.1.4-jspooner

Você pode voltar ao ramo principal usando:

git checkout master

Observe que, como mencionado na primeira revisão desta resposta, há outra maneira de efetuar o check-out de uma tag:

git checkout 1.1.4

Mas, como foi mencionado em um comentário, se você tiver um ramo com o mesmo nome, isso resultará no git avisando que o refname é ambíguo e fazendo check-out do ramo por padrão:

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

A abreviação pode ser usada com segurança se o repositório não compartilhar nomes entre ramificações e tags.

Código Falso Macaco Rashid
fonte
78
Para os espectadores de driveby, essa resposta é ambígua. Se houver um ramo e uma tag chamada 1.1.4. O Git fará o checkout do ramo, não da tag. Para fazer o checkout explicitamente da tag do:git checkout tags/1.1.4
ocodo 17/08/2013
2
Como voltamos ao 'tronco'?
Vinay W
3
@VinayWadhwa git checkout master
ABCD.ca
1
E para ver as tags, basta emitir git tag.
ACK_stoverflow 17/08/19
8

A partir de Git v2.23.0 (agosto de 2019), git switché preferível git checkoutquando você está simplesmente alternando ramos / tags. Acho que eles fizeram isso desde que git checkouttinham duas funções: para alternar ramificações e restaurar arquivos. Portanto, na v2.23.0, eles adicionaram dois novos comandos git switch, e git restorepara separar essas preocupações. Eu preveria em algum momento no futuro,git checkout será preterido.

Para alternar para uma ramificação normal, use git switch <branch-name>. Para alternar para um objeto de confirmação, incluindo confirmações e tags únicas, use git switch --detach <commitish>, onde <commitish>é o nome da tag ou o número de confirmação.

A --detachopção obriga a reconhecer que você está no modo de "experimentos de inspeção e descartáveis" . Para criar uma nova ramificação a partir da confirmação para a qual você está mudando, usegit switch -c <new-branch> <start-point> .

chharvey
fonte