na aula só foi colocado git log -n 2, isso já indica pra tag -a, que será nessas 2 ultimas commits o adicionamento da release? não precisa colocar o head em cima da commit para nomear que iniciando dela que vai ser a versão posta?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
na aula só foi colocado git log -n 2, isso já indica pra tag -a, que será nessas 2 ultimas commits o adicionamento da release? não precisa colocar o head em cima da commit para nomear que iniciando dela que vai ser a versão posta?
Oi, Francisco! Tudo bem?
Quando executamos o comando git log -n 2, é apresentado uma parte do nosso histórico de commits, o qual se restringe apenas a mostrar a quantidade de commits determinada no comando (nesse caso, dois). Contudo, esse procedimento não afirma ao Git quais commits desejamos adicionar à tag.
A existência do HEAD na criação de uma tag é necessário, tendo em vista que, a partir disso, são selecionados os commits que irão compor a versão. Com o comando git tag, o ponteiro do HEAD já está, de maneira implícita, apontando para o commit mais recente, o que significa dizer que nós não precisamos realizar tal procedimento.
Caso não quiséssemos criar a tag a partir do último commit e sim a partir de outro, seria preciso redirecionar o HEAD, migrando o ponteiro para o commit desejado.
Para fazer isso, precisamos conhecer o hash do commit que receberá o ponteiro do HEAD. No Git, o hash é um valor que referencia cada commit feito, para visualizá-lo e copiá-lo, podemos executar o comando abaixo:
git log --onelineA partir dele, veremos todo o histórico dos nossos commits de uma forma mais reduzida e de fácil visualização. Observe a partir de qual commit você deseja criar a tag e copie seu hash, localizado na lateral esquerda de cada linha.
Veja um exemplo abaixo:

Observe que, na imagem, HEAD está apontando para o último commit, com a mensagem “terceiro commit”. Contudo, queremos criar a tag a partir de “segundo commit”, que está logo abaixo. Logo, precisamos selecionar e copiar seu hash d25c285 e digitar o seguinte comando:
git checkout d25c285O comando checkout nos possibilita "navegar" por diferentes lugares dentro do nosso próprio repositório. Portanto, desse modo “voltamos no tempo” e o HEAD agora está apontando para o segundo commit, observe:

Feito isso, já podemos criar a tag a partir do comando abaixo:
git tag -a v0.1.0 -m "Mensagem descritiva sobre a tag"Ao criar uma tag, é interessante adicionar a flag -a, a qual determina que essa tag será do tipo "annotated" (anotada) e, portanto, levará consigo algumas informações acerca da ação feita, como nome, e-mail, arquivos modificados, etc. Um outro ponto sobre o comando acima é o uso da flag -m. Por meio dela, podemos adicionar uma mensagem descritiva sobre a criação da nova tag!
Para finalizar, podemos retornar ao estado mais recente da nossa aplicação, assim:
git checkout masterSe executarmos novamente git log --oneline, veremos que a tag já foi criada:

Caso queira enviá-la para o repositório do projeto no Github, será necessário fazer um push, como mostro abaixo:
git push origin v0.1.0Observação: note que, após o origin foi escrito o nome dado à tag. Isso é importante para que ela seja enviada ao repositório com êxito. Caso não se lembre do nome, existe um comando que nos apresenta todas as tags já feitas — com ele, podemos consultá-lo. A seguir, o comando:
git tagA partir da explicação acima, percebemos que, caso deseja-se criar uma tag a partir das últimas modificações feitas, não precisamos lidar com o HEAD, visto que, implicitamente, ele já está presente na criação da tag. Por outro lado, se quiséssemos limitar os commits da tag, realocar o HEAD, o uso do git checkout, seria necessário.
Francisco, espero ter ajudado! Caso surjam dúvidas após minha explicação ou ao decorrer dos seus estudos, fico à disposição para ajudá-lo. Forte abraço e até mais!
Muito obrigado Andrieli, me ajudou bastante a resolver um problema semelhante!
A sua explicação foi bem completa Andrieli, muito obrigado!