Control de Versiones con Git y GitStack

Control de Versiones con Git y GitStack

Control de Versiones con Git y GitStack
5 (100%) 2 votos

Hoy veremos control de versiones con git y gitstack, como gestionar nuestros proyectos profesionalmente con ayuda de GitStack un servidor git para windows. En resumen git es un sistema de control de versiones distribuido para nuestros proyectos, es decir, es un sistema con el que podemos llevar registro de cuando se hizo un cambio, cual fue ese cambio y quien lo hizo dentro de nuestro equipo de trabajo. También hace mas fácil trabajar en equipo y avanzar mas rápido en el proyecto en el que estemos trabajando. Veremos como instalar y configurar git, algunos conceptos básicos de git por si andas un poco perdido y por ultimo como instalar gitstack, el cual es un servidor git para windows que nos facilitara mucho la tarea, vamos ya con control de versiones con git y gitstack.

Instalar y Configurar Git

Lo primero que tenemos que hacer es que cada desarrollador debera tener una instalacion de git en su equipo para lo cual vamos a git for windows y nos descargamos el instalador.

 


Los comandos para configurar git son:

para saber cual versión de git tenemos instalada

para establecer nuestro nombre de usuario

para establecer tu email

para establecer el block de notas como nuestro editor de texto por default para git

para ver los parámetros que acabamos de establecer

Conceptos Basicos de Git

Git es un sistema de control de versiones distribuido, pero y ¿Que es un sistema de control de versiones? Un SCV es un sistema que registra los cambios registrados a un archivo o conjunto de estos a lo largo del tiempo permitiendo movernos entre estados de versiones de nuestro proyecto facilmente. Nos permite también ver los cambios realizados a lo largo del tiempo, ver quien fue el desarrollador que realizo estos cambios, si se estropea tu proyecto puedes recuperarlo fácilmente, identificaremos facilemente nuestra rama de desarrollo, nuestra rama de version estable y nuestras ramas de versiones anteriores, etc, etc. En resumen es algo fundamental para cualquier programador hoy en día y sino sabes utilizar un sistema de control de versiones estas perdiendo una gran oportunidad, de hecho en la mayoría de los trabajos hoy en día se manejan SCV.

 Sistema de control de versiones centralizados vs distribuidos

Existen dos tipos de SCV, los centralizados y los distribuidos.

Algunos ejemplos de SCV centralizados son: SubVersion y CVS.

Algunos ejemplos de SCV distribuidos son: Git y Mercurial.

Los SCV Centralizados utilizan un servidor central que es donde se guarda el proyecto, si el servidor falla deja sin posibilidad de trabajar a los desarrolladores, en cambio los SCV Distribuidos permiten tener un servidor de referencia donde realizar sincronizaciones y punto de partida pero cada desarrollador tendrá su repositorio completo en forma local, si el servidor falla los desarrolladores pueden seguir trabajando y subir cambios cuando este disponible de nuevo el servidor remoto, en este caso utilizaremos gitstack.

Los 3 estados de Git

En git existen 3 áreas en las cuales podemos tener nuestros archivos, working directory, staging area o index y head o en la base de datos local de git.

El head significa que nuestros archivos y sus cambios estan guardados de forma segura en nuestra base de datos local de nuestro repositorio git.

En Working Directory significa que estamos trabajando en nuestros archivos pero no han sido incluidos para ser guardados en el siguiente guardado general (commit).

La Staging area o Index es el area donde estan todos los archivos que seran guardados en el siguiente guardado general o commit.

En git podemos pasar un archivo de un estado a otro facilmente, para entenderlo mas facil imagina un archivo de codigo fuente en el que estas trabajando, terminas de hacer tus modificaciones y quieres agregarlo a la staging area para el proximo commit (guardado de la informacion en la bd) y seguir trabajando en otro archivo, terminas de modificar otro archivo de codigo fuente y tambien lo agregas a la staging area. Ahora tienes 2 archivos para guardar en el siguiente commit, realizamos el commit y estos cambios ahora estan guardados en la base de datos local de nuestro repositorio git. Lo siguiente seria sincronizar tus cambios con el servidor de referencia y permitir que tus cambios esten disponibles para otros desarrolladores.

control de versiones con git y gitstack

Ramas de Desarrollo

Git, como casi todos los demas SCV, tienen algun tipo de ramificacion que divergen de la linea principal de desarrollo, esto es que podemos crear otras lineas de desarrollo de forma independiente a la rama principal, asi podemos trabajar en diversos espacios de trabajo para resolver tareas diferentes sin afectar a nuestra rama principal de desarrollo. Por defecto nuestra rama principal se llamara master.

Comandos básicos de git:

Los siguiente comandos se escriben en cualquier ventana de comandos de Windows (Windows + R -> cmd)

(mas adelante se muestra un video de utilización de estos comandos con git y gitstack)

Conseguir ayuda

Crea un repositorio git en la carpeta actual

Clona un repositorio remoto a tu directorio actual para trabajar con el.

Permite pasar un archivo del area working directory al staging area o index ( hablaremos de estas areas mas adelante)

Permite regresar un archivo del staging area al working directory.

Permite pasar todos los archivos en la staging area o index al area Head o BD local de nuestro reposiorio, la opcion -m indica el mensaje de los cambios realizados en esta version.

Este comando permite subir tus cambios en tu repositorio local a tu repositorio remoto, los parametros de git push son “origin” que es el nombre de nuestro servidor remoto y “master” que es el nombre de nuestra rama que queremos subir.

Obtiene las diferencias del repositorio remoto en tu repositorio local.

Permite saber en cualquier momento el estatus de tu repositorio local, si existen archivos sin seguimiento, archivos modificados, archivos por commitear, etc.

Permite ver un registro de todos los commits realizados, quien los realizado, la nota de los cambios realizados y un Identificador de ese commit.

Permite ver los servidores registrados en git para conectarnos a ellos, la opcion -v permite ver también la url de dichos servidores.

Permite agregar un nuevo servidor remoto al cual git podrá conectarse, permite establecer un nombre de referencia y la url de dicho servidor. En caso de que se utilice el comando git clone url entonces dicho servidor se agregara a nuestra lista de servidores remotos y por defecto se llamara origin, es por esto que al hacer push origin master se le llama origin al nombre del servidor remoto, si queremos conectarnos a otro servidor remoto deberemos primero agregarlo con el comando git remote add minombredeservidor<url> y en el push origin master sustituir origin por minombredeservidor.

Instalar y Configurar GitStack

Nosotros utilizaremos una maquina de nuestra red como servidor de repositorios git, en este caso la mejor opción es GitStack.

¿Porque utilizar GitStack? GitStack es un software que nos permite instalar nuestro propio servidor privado de repositios git de forma fácil y rápida. Algunas características son:

  • Gratis para pequeños equipos.
  • Fácil instalación. Fácil administración de nuestros repositorios.
  • Usuarios y Grupos, asi como permisos.
  • Integración Actity Directory
  • Fácil administración web.
  • Open source.
  • Actualizaciones totalmente transparentes.
  • Migración a un click.
  • Mas..

Nos descargamos GitStack desde su pagina oficial y nos procedemos a instalar y configurar.

Ejemplo de uso de git y gitstack

Para terminar de ver el control de versiones con git y gitstack y nos quede un poco mas claro vamos a ver una pequeña demostración con algunos de los comandos mas básicos de Git y el uso de GitStack.

Cabe recalcar que nosotros utilizaremos la ventana de comandos para trabajar con Git pero existen gran cantidad de herramientas y complementos que se acoplan a nuestros IDEs para trabajar con Git fácilmente, aquí se utiliza la ventana de comandos para una mayor comprensión del tema. También cabe decir que algunas cosas avanzadas en Git solo se pueden realizar con comandos asi que es una buena idea primero entender git y utilizarlo con comandos y luego utilizar herramientas que nos ayuden a agilizar las cosas.


Si necesitas mas información para aprender git te recomiendo ir a este buen tutorial de Git (en ingles).

Hasta luego!

Control de Versiones con Git y GitStack

Control de Versiones con Git y GitStack
5 (100%) 2 votos

4 Comentarios ¿Qué opinas tú del tema?

  1. Xavier 2015-12-16
  2. oscar 2015-10-05
  3. Luis 2015-01-28
  4. Salvador 2015-01-20

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *