Difference between revisions of "Git, Tagging"

From Wiki de Caballero
Jump to navigation Jump to search
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
Para entender sobre Git, leer previamente [[Git, lo Básico]].
Para entender sobre Git, leer previamente [[Git, lo Básico]].


==Tagging==
Los ''tags'' son referencias a un ''commit'' en particular, pueden ser útiles por ejemplo para hacer referencia a una versión del desarrollo (e.g. 1.3.2).
Los ''tags'' son referencias a un ''commit'' en particular, pueden ser útiles por ejemplo para hacer referencia a una versión del desarrollo (e.g. 1.3.2).


Existen dos tipos de ''tags''. Primero, ''lightweight'' que funcionan como un puntero a un objeto de Git pero no guardan información adicional. Segundo, ''annotaded'' que son guardados como objetos completos de Git y contienen información como nombre del ''tagger'' (quien hace el ''tag''), e-mail, fecha y tienen un mensaje. En el [http://git-scm.com/book/en/Git-Basics-Tagging#Creating-Tags libro oficial] recomiendan usar ''annotaded tags''.
Existen dos tipos de ''tags''. Primero, ''lightweight'' que funcionan como un puntero a un objeto de Git pero no guardan información adicional. Segundo, ''annotaded'' que son guardados como objetos completos de Git y contienen información como nombre del ''tagger'' (quien hace el ''tag''), e-mail, fecha y tienen un mensaje. En el [http://git-scm.com/book/en/Git-Basics-Tagging#Creating-Tags libro oficial] recomiendan usar ''annotaded tags''.


===Lightweight Tags===
==Lightweight Tags==
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
git tag nombreTag
git tag nombreTag
</syntaxhighlight>
</syntaxhighlight>


===Anotaded Tags===
==Anotaded Tags==
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
git tag -a nombreTag -m 'Mensaje del tag'
git tag -a nombreTag -m 'Mensaje del tag'
</syntaxhighlight>
</syntaxhighlight>


===Listar tags===
==Listar tags==
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
 
Listar todos los tags
===Listar todos los tags===
<div class="mw-collapsible-content">
Este comando lista los tags disponibles
Este comando lista los tags disponibles
<syntaxhighlight lang="bash">
<source lang="bash">
git tag
git tag
</syntaxhighlight>
</source>
Resultado:
Resultado:
<syntaxhighlight lang="bash">
<source lang="bash">
v1
v1
v1.3
v1.3
v1.5
v1.5
</syntaxhighlight>
</source>
</div></div>


<div class="toccolours mw-collapsible mw-collapsed" style="width:800px">
===Listar tags usando filtro===
Listar tags usando filtro
<div class="mw-collapsible-content">
Este comando lista los tags disponibles
Este comando lista los tags disponibles
<syntaxhighlight lang="bash">
<source lang="bash">
git tag -l 'v1.*' # Lista solamente los tags que empiezan con v1.
git tag -l 'v1.*' # Lista solamente los tags que empiezan con v1.
</syntaxhighlight>
</source>
Resultado:
Resultado:
<syntaxhighlight lang="bash">
<source lang="bash">
v1.3
v1.3
v1.5
v1.5
</syntaxhighlight>
</source>
</div></div>


===Tag un commit anterior===
==Tag un commit anterior==
Para hacer un ''tag'' sobre un ''commit'' anterior se usa, después del comando, el ''checksum'' del ''commit'' (o una parte) que se quiere usar. Funciona igual para ''lightweight'' o ''annotaded'' ''tags''. Ej:
Para hacer un ''tag'' sobre un ''commit'' anterior se usa, después del comando, el ''checksum'' del ''commit'' (o una parte) que se quiere usar. Funciona igual para ''lightweight'' o ''annotaded'' ''tags''. Ej:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Line 52: Line 46:
</syntaxhighlight>
</syntaxhighlight>


===Quitar un tag===
==Quitar un tag==
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
git tag rm nombreTag
git tag rm nombreTag
</syntaxhighlight>
</syntaxhighlight>


===Subir tags a un remote===
==Subir tags a un remote==
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
git push nombreRemote nombreTag # Sube nombreTag a nombreRemote
git push nombreRemote nombreTag # Sube nombreTag a nombreRemote
Line 63: Line 57:
</syntaxhighlight>
</syntaxhighlight>


==Branching==
==Obtener un tag==
Branching funciona como caminos diferentes que pueden volver a unirse. En un punto determinado de la historia del proyecto se crean dos caminos que contienen lo mismo pero que pueden cambiar independientemente.
<source lang="bash">
 
git checkout nombreTag
Existe un puntero HEAD que apunta a la rama actual.
</source>
 
La rama mestra se crea por defecto y se llama ''master''.
 
Antes de cambiar de rama (''checkout'') es buena idea hacer un commit.
 
===Crear una rama nueva, nueva branch===
<syntaxhighlight lang="bash">
git branch nuevaRama
</syntaxhighlight>
 
===Listar ramas===
<syntaxhighlight lang="bash">
git branch
</syntaxhighlight>
Para más información ver [http://git-scm.com/book/en/Git-Branching-Branch-Management libro oficial].
 
===Cargar una rama===
Este comando carga el contenido de una rama y hace que el puntero HEAD apunte a dicha rama.
<syntaxhighlight lang="bash">
git checkout nuevaRama
</syntaxhighlight>
 
===Cargar la rama maestra===
Este comando carga el contenido de la rama maestra y hace que el puntero HEAD apunte a dicha rama.
<syntaxhighlight lang="bash">
git checkout master
</syntaxhighlight>
 
===Crear rama y cargarla===
<syntaxhighlight lang="bash">
git checkout -b nuevaRama
</syntaxhighlight>
Es un atajo que hace lo mismo que:
<syntaxhighlight lang="bash">
git branch nuevaRama
git checkout nuevaRama
</syntaxhighlight>
 
===Merge branches (unificar ramas)===
<syntaxhighlight lang="bash">
git checkout master # Se carga la rama master estando en otra rama
git merge nuevaRama # Se hace merge de la nuevaRama sobre master
</syntaxhighlight>
 
===Borrar una rama===
Se pueden borrar ramas cuando se desee pero puede ser buena idea hacerlo cuando se planee no usarla más, eso puede ocurrir por ejemplo cuando se trabajo en una rama, se unió al ''master'' y ya no tiene sentido tener la rama todavía porque no se va a trabajar más sobre ella.
<syntaxhighlight lang="bash">
git branch -d nuevaRama
</syntaxhighlight>
 
===Conflictos===
Para más información sobre cuando se producen conflictos y cómo resolverlos trabajando con ''branches'', ver [http://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging#Basic-Merge-Conflicts libro oficial].


[[Category: Git]]
[[Category: Git]]

Latest revision as of 17:05, 14 May 2016

Para entender sobre Git, leer previamente Git, lo Básico.

Los tags son referencias a un commit en particular, pueden ser útiles por ejemplo para hacer referencia a una versión del desarrollo (e.g. 1.3.2).

Existen dos tipos de tags. Primero, lightweight que funcionan como un puntero a un objeto de Git pero no guardan información adicional. Segundo, annotaded que son guardados como objetos completos de Git y contienen información como nombre del tagger (quien hace el tag), e-mail, fecha y tienen un mensaje. En el libro oficial recomiendan usar annotaded tags.

Lightweight Tags

git tag nombreTag

Anotaded Tags

git tag -a nombreTag -m 'Mensaje del tag'

Listar tags

Listar todos los tags

Este comando lista los tags disponibles

git tag

Resultado:

v1
v1.3
v1.5

Listar tags usando filtro

Este comando lista los tags disponibles

git tag -l 'v1.*' # Lista solamente los tags que empiezan con v1.

Resultado:

v1.3
v1.5

Tag un commit anterior

Para hacer un tag sobre un commit anterior se usa, después del comando, el checksum del commit (o una parte) que se quiere usar. Funciona igual para lightweight o annotaded tags. Ej:

git tag -a nombreTag -m 'Mensaje del tag' 1132c1f

Quitar un tag

git tag rm nombreTag

Subir tags a un remote

git push nombreRemote nombreTag	# Sube nombreTag a nombreRemote
git push nombreRemote --tags	# Sube todos los tags que exiten localmente a nombreRemote

Obtener un tag

git checkout nombreTag