Na etapa anterior, vimos como listar as tags em um repositório remoto. Agora, vamos ver como comparar essas tags remotas com as tags que existem em seu repositório local. Isso é útil para verificar se seu repositório local está atualizado com o remoto ou se você tem alguma tag local que ainda não foi enviada.
Primeiro, vamos garantir que estamos em um repositório Git. Criaremos um simples para este exemplo. Navegue até o diretório do seu projeto e inicialize um novo repositório Git:
cd ~/project
mkdir my-tag-repo
cd my-tag-repo
git init
Agora, vamos criar um arquivo e fazer um commit inicial:
echo "Initial content" > file.txt
git add file.txt
git commit -m "Initial commit"
Em seguida, vamos criar uma tag local. Criaremos uma tag leve chamada v1.0:
git tag v1.0
Agora, vamos listar nossas tags locais usando o comando git tag:
git tag
Você deve ver:
v1.0
Isso confirma que nossa tag local v1.0 foi criada.
Para comparar nossas tags locais com as tags remotas, normalmente precisaríamos de um repositório remoto. Como não temos um remoto configurado para nosso my-tag-repo ainda, podemos simular o conceito de comparação.
Imagine que você tem um repositório remoto vinculado ao seu local. Você pode buscar as informações mais recentes do remoto sem mesclar as alterações usando git fetch --tags. Este comando busca todas as tags do repositório remoto.
Após a busca, você pode usar git tag -l para listar as tags locais e git ls-remote --tags origin (assumindo que 'origin' é o nome do seu remoto) para listar as tags remotas. Ao comparar a saída desses dois comandos, você pode ver quais tags estão presentes localmente, quais estão presentes remotamente e quais estão presentes em ambos.
Por exemplo, se git tag -l mostrar v1.0 e v1.1, mas git ls-remote --tags origin mostrar apenas v1.0, isso significa que sua tag local v1.1 ainda não foi enviada para o repositório remoto.
Neste ambiente de laboratório, não temos um servidor remoto para enviar. No entanto, entender os comandos git tag (para tags locais) e git ls-remote --tags (para tags remotas) é a chave para compará-los.
Na próxima etapa, exploraremos o cenário de ter tags locais que ainda não estão no repositório remoto.