Git Cookbook, ¿Qué es el estado o modo DETACHED HEAD?

Git

Es cuando la referencia HEAD se encuentra apuntando a un commit anterior en el tiempo en vez de una rama.

Normalmente la referencia HEAD se encuentra apuntando a la rama actual que suele ser la rama master. Y la referencia a la rama master se encuentra apuntando al SHA-1 del último commit.

Cuando nos encontramos en detached head la referencia HEAD se encuentra apuntando al SHA-1 del commit donde nos hemos desplazado.

Sigue leyendo

Anuncios

Git Cookbook, clonar o descargar las ramas de un repositorio remoto

Git

Cuando hacemos un clone de un repositorio remoto lo que estamos haciendo es descargar la rama principal master. Si queremos además recuperar también sus ramas, debemos hacerlo por cada una de ellas.

Vamos a utilizar un proyecto cualquiera de github como ejemplo.

Sigue leyendo

Git Cookbook, deshacer un cambio pendiente de commit

Git

Estamos ante el caso de un recurso que hemos modificado, lo hemos presentado en el area de commit, y ahora queremos deshacer los cambios.

En el ejemplo hemos modificado el recurso pom.xml, lo hemos presentado en el área de commit, y finalmente tenemos que deshacer los cambios para dejarlo en la versión inicial.

Modificamos el recurso pom.xml y lo subimos al área de commit

$ git add pom.xml

Eliminamos los cambios del área de commit

$ git reset HEAD pom.xml

Volvemos a la versión inicial

$ git checkout pom.xml

Git Cookbook, Cambiar de la rama principal master a un tag y volver a la rama principal master

Git

Podemos cambiar a la versión de código del momento de realizar el tag. Podremos realizar cambios y commits sobre ellos sin influir en los branch que tengamos. Pero cuando cambiemos a otro tag o volvamos a la rama principal master perderemos todos esos cambios.

Si necesitamos mantener los cambios realizados tendremos que crear una rama o branch a partir del tag.

Listado de tags

$ git tag -l -n

v0.0.1          tag version 1
v0.0.2          tag version 2
v0.0.3          tag version 3
v0.0.4          version 4

Cambiar al tag v0.0.1

$ git status
On branch master
nothing to commit, working directory clean

$ git checkout tags/v0.0.1

$ git status
HEAD detached at v0.0.1
nothing to commit, working directory clean

Volver a la rama principal o master

$ git checkout master

$ git status
On branch master
nothing to commit, working directory clean