Vamos a empezar con un poco de introducción. El control de versiones es un sistema que registra los cambios realizados sobre un archivo o conjunto de archivos a lo largo del tiempo, de modo que puedas recuperar versiones específicas más adelante.

Existen diferentes modos de enfocar el control de versiones, las más populares son un repositorio centralizado (SVN) o un repositorio distribuido (Git).

Repositorio centralizado

Esto es un lugar donde se almacena el proyecto en su totalidad. Así los clientes se conectan al repositorio central y pueden descargar el código o hacer commits (enviar sus cambios) hacia él.

 

Repositorio distribuido

Cada cliente tiene una copia local de todo el proyecto, es decir todo el histórico, etiquetas, ramas,… Así los clientes pueden hacer commits parciales, y pensar en una funcionalidad por rama.


Explicando GIT con un ejemplo

Creo que la mejor forma de aprender es viendo ejemplos. Ahora explico una de las maneras de trabajar con Git (existen otras).

Tengo un proyecto que funciona perfectamente en mi repositorio GIT (al proyecto que funciona se le rama master ) y quiero crear una nueva funcionalidad o experimentar algo nuevo. Entonces hago esto:

>git branch experimento1
>git checkout experimento1

He creado una rama nueva y en esta rama puedo hacer lo que quiera como crear la kill feature de mi proyecto 😉 Incluso puedo hacer commits por si la lio en esta nueva rama.

Sigo trabajando y si al final veo que este experimento me gusta puedo integrarlo con la rama master así:

>git checkout master
>git merge experimento1

Pero puede que los cambios no me gusten, o que quiera dejar de momento el proyecto sin el nuevo experimento. Entonces solo tengo que hacer:

>git checkout master
>git branch -D experimento1

*Existen otros Sistemas de control de versiones distribuidos (DVCS) como mercurial o Bazaar pero más o menos se basan en los mismo principios.

Razones por las que usar git

  • Porque necesito usar un control de versiones en mi proyecto.

  • Se habla de las ventajas de Git frente a subversion, creo que la mayor ventaja es que está de modo y si lo uso molaré más  ¿no?

-Es rápido, o eso dicen, mi proyecto no tienen tanta envergadura como para hacerlo.

-Me gusta el manejo de branches (escribiré otro post)

-Porque está github (una forja muy molona 😉

Referencias

http://git-scm.com/book

http://bicosyes.com/2008/06/git-%C2%BFmerece-la-pena/

http://blog.marcoscrispino.com/2011/06/subversion-vs-git.html

http://nvie.com/posts/a-successful-git-branching-model/

Imágenes de: http://javisantana.github.com/slides/git-svn

Una respuesta a “Introducción a GIT”

  1. Avatar de El cumpleaños del blog – Jesús L.C.

    […] bien por cierto) y durante su transcurso no solo aprendí sobre Liferay, también tuve que entender qué era eso de Git y como tener una buena estrategia de branching con gitflow, tuve que aprender a planificar mi […]

    Me gusta

Replica a El cumpleaños del blog – Jesús L.C. Cancelar la respuesta

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.

Jesús López

Soy un Ingeniero en Informática y apasionado de la programación. Me gusta disfrutar de mi familia, viajar y perdernos paseando.  Me mola programar, hacer tests y refactorizar código . Practico Test Driven Development (TDD) y me lo paso bien con el legacy codeLeer más

Sígueme en: