Nesta etapa, exploraremos como git describe --tags se comporta quando não estamos no commit mais recente. Isso demonstra como o comando ajuda você a entender sua posição no histórico do projeto em relação às suas tags.
Primeiro, certifique-se de estar no diretório do projeto:
cd ~/project/my-time-machine
Atualmente, estamos no commit mais recente, que está marcado com v1.1. Vamos usar git describe --tags novamente para confirmar:
git describe --tags
A saída deve ser v1.1 porque o commit atual está exatamente onde a tag v1.1 está apontando.
Agora, vamos voltar para o commit onde criamos a tag v1.0. Podemos usar git checkout seguido pelo nome da tag para fazer isso.
git checkout v1.0
Você verá uma saída indicando que está em um estado 'detached HEAD'. Não se preocupe com isso por enquanto; isso apenas significa que você está olhando para um commit específico em vez do topo de um branch.
Note: switching to 'v1.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 switching back to a branch.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command (for example,
'git switch -c <new-branch-name>'). Or, if you meant to switch to a number
of commits past an existing branch, what you probably want is to use
'git switch <branch-name>~<number>'.
Switched to a new branch 'v1.0'
Agora que estamos no commit marcado com v1.0, vamos executar git describe --tags novamente:
git describe --tags
A saída deve ser simplesmente:
v1.0
Isso ocorre porque o commit atual está exatamente onde a tag v1.0 está localizada. Não há commits entre a posição atual e a tag v1.0.
Vamos tentar voltar para o commit onde criamos a tag v0.9:
git checkout v0.9
Novamente, você verá a mensagem detached HEAD.
Agora, execute git describe --tags:
git describe --tags
A saída deve ser semelhante a:
v0.9
Isso confirma que git describe --tags identifica corretamente a tag mais próxima da sua posição atual no histórico de commits. Essa capacidade de descrever commits em relação às tags é muito útil para entender o estado do seu projeto em diferentes momentos.
Para retornar ao commit mais recente no branch master, você pode usar:
git checkout master
Você deve ver uma saída indicando que você voltou para o branch master:
Switched to branch 'master'
Your branch is up to date with 'origin/master'.