- Git manexar etiquetas
- Etiquetas lixeiras “lightweight”
- Etiquetas “Annotated”
- Borrar etiquetas
- Traballar con tags e repositorios remotos
Git manexar etiquetas
Verémola creación de etiquetas “tags”, a consulta das mesmas e a súa eliminación, este artigo amplía máis os coñecementos vistos en Inico en git.
Listalas etiquetas
Para listalas etiquetas “tags” existentes no proxecto:
git tag
As lista en orde alfabético.
Buscar etiquetas que coincidan cun patrón:
git tag -l "v1.*"
Donde poñemos a cadea a buscar e un asterisco no que sexa aleatorio.
Os tipos de etiquetas
Git soporta dous tipos de etiquetas:
- lightweight (lixeiras).
- annotated (anotacións).
As lightweight son coma un branch (ramificación) que non muda, é un punteiro a unha aplicación de mudanzas ( commit ) específica.
En cambio as annotated, son gardadas como obxetos completos na base de datos de Git. Failles unha función resumo (checksummed), conteñen o nome, email e data de etiquetación da persoa que o fai. Tamén ten unha mensaxe de etiquetado e pode ser asinado cunha chave GPG, cousa recomendable pra que se sepa que foche ti quen etiquetou o estado do código nese momento, logo se mudan a etiqueta non podrán facelo firmando coa túa chave.
O resumo sobre o uso é que se vas facer unha etiqueta temporal que non teña información sobre o etiquetado, as etiquetas “lightweight” son as recomendadas, pra etiquetados fináis, mellor usalas annotated.
Parámetros creación de etiquetas
Estos parámetros son os que usa “git tag”, o uso ou non deles, implica no resultado da etiqueta final que sexa tomada como “annotated” ou “lightweight”.
- -a , Crear un obxeto etiqueta sen asinar e cunha anotación.
- -s , Asina a etiqueta coa túa chave GPG, por defecto usará a asociada ao mail configurado no teu git.
- -m [mensaxe] , Se non se especifica nos amosará o editor configurado pra engadirlle unha.
Etiquetas lixeiras “lightweight”
Estas serían tomadas como etiquetas “vagas” usadas pra marcar rápido o último commit realizado.
Crear unha etiqueta “lightweight”
Son sinxelas non teñen moito misterio, case son coma un alias dun determinado commit.
Para facer unha etiqueta lixeira “lightweight”:
git tag <nome_etiqueta>
$ git tag v1.4-lw
$ git tag
v0.1
v1.3
v1.4
v1.4-lw
v1.5
Se fas un git show da etiqueta, non verás información extra da etiqueta:
$ git show v1.4-lw
commit ca82a6dff817ec66f44342007202690a93763949
Author: Scott Chacon <schacon@gee-mail.com>
Date: Mon Mar 17 21:52:11 2008 -0700
changed the version number
Etiquetas “Annotated”
Estas serían as etiquetas máis completas, incluen mensaxes, sinaturas, soen ser adicadas a establecer puntos de versión das aplicacións. Como o seu nome indica son etiquetas con anotacións.
Crear etiqueta “Annotated”
Para facer una etiqueta anotada “Annotated”:
git tag -a <nome_etiqueta> -m [<mensaxe_sobre_a_etiqueta>]
$ git tag -a v1.4 -m "my version 1.4"
$ git tag
v0.1
v1.3
v1.4
Se omitela mensaxe de -m, abrirá o editor que teñas configurado por defecto.
Ver a información dunha etiqueta “Annotated”
Se fas un git show , verías algo así:
$ git show v1.4
tag v1.4
Tagger: Ben Straub <ben@straub.cc>
Date: Sat May 3 20:19:12 2014 -0700
my version 1.4
commit ca82a6dff817ec66f44342007202690a93763949
Author: Scott Chacon <schacon@gee-mail.com>
Date: Mon Mar 17 21:52:11 2008 -0700
changed the version number
Asinalas etiquetas con GPG
Asinalas etiquetas é recomendable, pra que no caso de que outro colaborador a elimine e cree unha nova co mesmo nome e mensaxe, non te poida suplantar a etiqueta xa que lle faltaría a túa sinatura.
Non tes máis que incluir o “-s”.
Exemplo:
git tag -s <nome_etiqueta> -m [<mensaxe>]
E consultará a GPG, pra ter acceso a túa chave privada pedíndoche introducila súa clave e a continuación firmará o hash da etiqueta.
Configurar o uso da chave GPG
Por defecto git buscará a chave asociada ao teu email, mais se pode configurar.
Obter información da túa chave GPG
Se non tes creado un par de chaves GPG busca como facelos, xa que a súa creación e xestión da para outro artigo.
Primeiro obtense o id da chave do listado das que teñamos configuradas:
gpg --list-keys
Unha vez teñas copiado o ID da chave que queres usar, podes engadila como parámetro global con “–global” ou só ao proxecto sen incluir o “–global”:
git config --global user.singingkey <id_da_chave>
Con iso xa estaría posta como por defecto a chave indicada.
Etiquetar commits antigos
Primeiro tes que sabelo checksum do commit a etiquetar.
Obter listado de commits nunha sóa liña
Para elo podes listalos:
$ git log --pretty=oneline
15027957951b64cf874c3557a0f3547bd83b3ff6 Merge branch 'experiment'
a6b4c97498bd301d84096da251c98a07c7723e65 beginning write support
0d52aaab4479697da7686c15f77a3d64d9165190 one more thing
6d52a271eda8725415634dd79daabbc4d9b6008e Merge branch 'experiment'
0b7434d86859cc7b8c3d5e1dddfed66ff742fcbc added a commit function
4682c3261057305bdd616e23b64b0857d832627b added a todo file
166ae0c4d3f420721acbb115cc33848dfcc2121a started write support
9fceb02d0ae598e95dc970b74767f19372d61af8 updated rakefile
964f16d36dfccde844893cac5b347e7b3d44abbc commit the todo
8a5cbc430f1a9c3d00faaeffd07798508422908a updated readme
Agora que xa o tes, non tes máis que poñelo completo ou a parte inicial del (que non coincida con varias ) ao final do comando git tag:
$ git tag -a v1.2 9fceb02
E listo, xa estaría etiquetado ese commit antigo.
Borrar etiquetas
Para borrar etiquetas usamos o parámetro “-d”:
git tag -d <nome_etiqueta>
Traballar con tags e repositorios remotos
Por defecto as etiquetas non son enviadas aos repositorios remotos, tesllo que indicar explícitamente.
Enviar etiquetas a repos remotos
Enviar unha sóa etiqueta:
git push <alias_repo_remoto> <nome_etiqueta>
Enviar tódolas etiquetas, se usa o parámetro –tags:
git push <alias_repo_remoto> --tags
Agora calquera que clone ou faga pull ao teu repositorio, tamén conseguirá as etiquetas.