Comparte en Facebook Twitter Google+

ramificaciones-git

Ramificaciones en git

Una rama (branch) es una bifurcación en la línea de tiempo del proyecto que nos permite crear una copia paralela para desarrollar cambios sin afectar la versión estable (por defecto la rama master).

El sistema de ramificaciones ofrece la posibilidad de crear tantas copias del código como creamos necesario.

En una clase anterior sobre Primeros pasos con git y GitHub hablábamos sobre los commits, y decíamos que son algo como los cambios registrados en git durante el desarrollo del proyecto, cada rama, puede tener registrados sus propios commit, y luego pueden fusionarse con otra (como la rama master).

 

Esquema de trabajo

Supongamos que tenemos un proyecto para desarrollar un sitio web de anuncios, si trabajamos de forma independiente el frontend y el backend, podemos crear una rama para cada sección y luego poco a poco se integrarán los cambios con la rama principal.

ramificaciones-git

Pensemos en cada nodo como un commit realizado.

Crear una nueva rama

Entramos desde la consola de comandos a la carpeta raíz del proyecto. Si aun no sabes como crear un repositorio en git te recomiendo visitar la clase anterior

Primeros pasos con git y GitHub

Como mencionaba anteriormente git crea por defecto una rama llamada master, para comprobarlo podemos escribir el comando

de esa forma puedes ver la rama en la que está ubicado actualmente

si ejecutas ls puedes ver la lista de archivos creados hasta el momento

Manos a la obra!!!, comenzaremos a trabajar con el frontend agregando algo de diseño, para ello empezaremos creando una rama llamada frontend que será nuestro espacio de desarrollo

si ejecutamos nuevamente git branch podemos ver que se ha creado la nueva rama pero aun estamos posicionados en master

Recordemos que cada rama es una copia independiente por lo tanto los cambios que se hagan en una, no se verán en la otra hasta el momento de la fusión.

Con el comando checkout podemos movernos entre ramas y commits

Hasta ahora todo se ve igual, pero podemos comprobar que hemos pasado a la rama frontend ejecutando nuevamente

 

Realizando cambios en la nueva rama

 Vamos a descargar bootstrap desde la pagina oficial http://getbootstrap.com/ e incluimos los archivos dentro de la carpeta del proyecto

aprendelaravel-git-file

 Cambiemos un poco el index.html

Así deberían verse los cambios en el navegador

git-frontend-index

Guardar cambios realizados mediante commit

Hemos agregado nuevos archivos y carpetas, realizamos unas modificaciones al código, y ahora decidimos que esta bien por hoy, todo funciona correctamente y queremos guardar los cambios realizados.

Recuerda que para hacer commit debes indicarle a git que archivos quieres incluir. Para ver las modificaciones usa

 deberias tener algo como esto

Se pueden agregar los archivos de uno en uno pero si deseamos podemos agregarlos todos al mismo tiempo

 Con esto ya tenemos todo preparado para el siguiente paso, el commit. Cada commit debe ir acompañado de un mensaje donde explicamos de forma muy corta los cambios realizados

Genial, git ha registrado los cambios realizados

 Fusionar ramas

 Ahora que hemos realizado cambios importantes podemos ver realmente el poder de git sobre el control de versiones. Recapitulando un poco, hemos creado una rama llamada frontend y tenemos la rama master creada por defecto por git, aprendimos un poco sobre como movernos entre ramas con el comando checkout sabiendo que cada rama contiene una copia independiente del código.

 Si pasamos a la rama master

y listamos los archivos

Tranquilo, no entres en pánico, tus cambios no se han perdido. git te muestra el último estado o commit almacenado para la rama master, recuerda que los cambios se realizaron en la rama frontend.

Digamos que los cambios fueron aprobados y queremos enviarlos a la rama master para almacenarlos posteriormente en nuestro repositorio remoto de GitHub.

 Sería increíble poder hablar con git y decirle “fusiona la rama frontend con la rama master”.

 En realidad si es increíble, porque lo podemos hacer. Es importante estar posicionado en la rama que va a absorber los cambios de otra, en nuestro caso master y ejecutamos una simple linea de comando

En este momento ya todos los cambios han sido fusionados y podemos enviarlos al repo.

 

 Enviar cambios al repositorio remoto

 Siguiendo los pasos descritos en la clase anterior, una vez realizado el commit enviamos los cambios al repositorio de la siguiente manera

Ahora todos los cambios estarán disponibles en el repositorio remoto de GitHub.

updated-repo-github

Felicitaciones! estas un paso más cerca de trabajar como un verdadero profesional. Con este sencillo tutorial puedes olvidarte de los dolores de cabeza generados por la pérdida de código o daños no intencionales que ocurran durante el desarrollo.

Te recomiendo que uses lo aprendido y repitas el proceso una y otra vez hasta que se te haga mas familiar. Recuerda dejar tus preguntas y comentarios. Aún falta mucho por aprender sobre git y su uso profesional así que espero que te mantengas al día con esta serie, se viene muy buen contenido.

Regístrate hoy en Styde y continua mejorando tus habilidades: ver planes.

Lección anterior Clone y Fork con git y GitHub Lección siguiente Guardar y recuperar cambios con git