Git

Sistema de control de versiones

Los sistemas de control de versiones son programas que se utilizan para controlar los cambios de los archivos de código de las aplicaciones en desarrollo, y así saber en que estado esta, es decir en que versión esta el proyecto. Ademas de saber los cambios que se han hecho y en que apartado como también de las personas que lo han modificado, etc.

En la actualidad se debe incluir un control de versiones para la administración en un proyecto de desarrollo, para poder agilizar  el trabajo hecho en grupo y poder tener un seguimiento de los cambios de cada uno de los archivos del proyecto aunque también es necesario y de gran ayuda para un trabajo desarrollado por una sola persona.

Sus características son poder comparar el código de un archivo y así poder ver las diferencias entre versiones, como también restaurar versiones antiguas, además de juntar cambios entre diferentes versiones y trabajar con distintas ramas en el desarrollo de un proyecto y su producción.

Ahora que sabemos lo que es un sistema de control de versiones sabemos lo que es el Git, ya que es exactamente eso.

También está el Github que es un servicio para almacenamiento de repositorios gestionados por Git, por lo que Git nos sirve para controlar el estado de un proyecto en desarrollo a largo tiempo.

Otra característica de Git es que es un tipo de sistema de control de versiones distribuido.

Pero existen varios tipos de sistemas de control de versiones, como los sistemas distribuidos y centralizados.

Sistemas centralizados

El sistema centralizado es el único lugar donde está todo el código del proyecto de manera completa donde hay un servidor que mantiene el repositorio es decir en un único directorio. Por lo tanto los desarrolladores que quieran trabajar con el código de esa versión hacen una copia local para modificarlo y cuando terminan y esta listo y en funcionamiento guardan la nueva versión en ese único directorio. CVS utiliza este sistema por ejemplo.

Sistemas distribuidos

El sistema distribuido cada uno de los integrantes del equipo mantiene una copia local del repositorio completo con todas las versiones y todo su historial y no central. Al disponer de un repositorio local, se puede enviar cambios al sistema de control de versiones en local es decir hacer commit , sin necesidad de estar conectado a Internet o cualquier otra red. En cualquier momento y en cualquier sitio donde esté puedo hacer un commit.  Además puedes compartirlo con otros desarrolladores y sincronizar los repositorios y así si un desarrollador ha modificado determinados apartados y otro desarrollador no, los repositorios modificados se convierten en la versión más actualizada. Por lo tanto tener un repositorio completo facilita ser autónomo y poder trabajar en cualquier momento. Por ejemplo Git es un sistema de control de versiones distribuido.

Para mas información ver en Sistemas distribuidos.

En los sistemas distribuidos se utilizan las ramas o branching que son utilizadas cuando inicializamos o clonamos un repositorio obteniendo siempre una rama principal llamada por defecto master. Por ejemplo si queremos añadir a un proyecto una nueva funcionalidad con Git, debemos crear una nueva rama con su respectivo nombre descriptivo en el cual iremos añadiendo los cambios y después cambiaremos a esta rama.

Aquí puedes encontrar mas información sobre lo que es una rama en Git.

La historia de Git es que es un software de control de versiones diseñado por Linus Torvalds, el mismo que del kernel Linux en el año 2005, para mejorar la eficacia y la confidencialidad del mantenimiento de versiones de aplicaciones cuando tienen muchos archivos de código fuente y siendo una alternativa de BitKeeper, un control de versiones privativo que usaba en ese entonces para el kernel creando así Git de software libre y siendo multiplataforma, por lo que puedes usarlo y crear repositorios locales en todos los sistemas operativos más comunes, Windows, Linux o Mac.

Para mas información sobre la Historia de Git aquí.

El Git tiene unos comandos básicos como:

Commit: que es para agregar un comentario sobre las modificaciones que has hecho en el fichero y así poder enviar los cambios al repositorio.

Add: mueve al índice los cambios que hemos hecho.

Status: muestra el estado de la rama actual como los cambios que hay sin commitear.

Checkout: recupera un archivo desde la rama o la revisión actual

Log: muestra el log del commit, opcionalmente de la ruta especifica

Pull: descarga y guarda los cambios realizados desde un repositorio remoto

Push: guarda los cambios en un repositorio remoto

Branch: lista las ramas locales


Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s