Sie sind auf Seite 1von 4

GIT Y GITHUB

Empezar con un pequeo ejemplo o introduccin para que sea ms entendible el


concepto de Git y GitHub.
-No trabajes en caliente- Era la frase que muchos administradores de sistemas me decan
cuando tocaba el cdigo de un proyecto directamente en el FTP (Protocolo de
transferencia de archivos), hacer eso es un riesgo grande ya que puedes dejar a tu cliente
sin web por estar toqueteandole las entraas mientras la web est siendo visitada. Tienes backup?- Otra de las preguntas que siempre debes hacerte a la hora de
desarrollar, si usas Time Machine de OSX o cualquier sistema de backup con disco
externo sabes que tienes unos backups cada hora de todo el sistema, pero si trabajas en
caliente esos backups no se guardan a menos de que bajes el archivo a tu ordenador y
este se incluya en las revisiones de Time Machine, ahora dejemos TM para el sistema
ya que no es lo ptimo para trabajar en grupo y peor de forma remota. -Pero qu has
tocado?- Es ese sudor fro que te recorre la mdula espinal cuando tu desarrollo deja de
funcionar y no sabes porque, ni quien lo modifico, ni cundo ni que lnea de cdigo o
archivo.
Una de las claves de trabajar como un profesional es tener un entorno profesional y una
pieza importante de ese entorno es un repositorio de versiones, ya sea SVN o Git (hay
ms).
Git es un software de control de versiones diseado por Linus Torvalds, pensando en la
eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando stas
tienen un gran nmero de archivos de cdigo fuente.
Los sistemas de control de versiones son programas que tienen como objetivo controlar
los cambios en el desarrollo de cualquier tipo de software, permitiendo conocer el estado
actual de un proyecto, los cambios que se le han realizado a cualquiera de sus piezas, las
personas que intervinieron en ellos, etc.
El control de versiones es una de las tareas fundamentales para la administracin de un
proyecto de desarrollo de software en general. Surge de la necesidad de mantener y
llevar control del cdigo que vamos programando, conservando sus distintos estados. Es
absolutamente necesario para el trabajo en equipo, pero resulta til incluso a
desarrolladores independientes.

Para facilitarnos la vida existen sistemas como Git, Subversion, CVS, etc. que sirven para
controlar las versiones de un software y que deberan ser una obligatoriedad en cualquier
desarrollo. Nos ayudan en muchos mbitos fundamentales, como podran ser:

Comparar el cdigo de un archivo, de modo que podamos ver las diferencias entre
versiones

Restaurar versiones antiguas

Fusionar cambios entre distintas versiones

Trabajar con distintas ramas de un proyecto, por ejemplo la de produccin y


desarrollo

Qu nos aporta Git?

Auditora del cdigo: saber quin ha tocado qu y cundo.

Control sobre cmo ha cambiado nuestro proyecto con el paso del tiempo.

Volver hacia atrs de una forma rpida.

Control de versiones a travs de etiquetas: versin 1.0, versin 1.0.1, versin 1.1,
etc. Sabremos exactamente que haba en cada una de ellas y las diferencias entre
cualquiera de ellas dos

Seguridad: todas las estructuras internas de datos estn firmadas con SHA1. No
se puede cambiar el cdigo sin que nos enteremos.

Mejora nuestra capacidad de trabajar en equipo.

Merging y branching extremadamente eficientes.

Ahora explicar sobre GitHub:


Que Git sea distribuido quiere decir que est preparado para poder trabajar en equipos
distribuidos (es decir, cada uno en su casa) de forma eficiente. Imagnate que t ests en
Espaa y yo en Rusia Cmo hacemos para coordinarnos? Cmo s yo qu cdigo has
tocado t y viceversa?
Este problema Git lo resuelve con herramientas un poco complicadas de configurar si no
tienes la experiencia y conocimientos adecuados (Servidores SSH, claves pblicas y
privadas, etc.). Si eres administrador de sistemas y tienes tu propio servidor, no tardaras

mucho en hacerlo. En caso contrario, Github te facilita toda la infraestructura para trabajar
en equipos distribuidos a travs de una interfaz web la mar de cmoda.
Github es un servicio para alojamiento de repositorios de software gestionados por el
sistema de control de versiones Git. Por tanto, Git es algo ms general que nos sirve para
controlar el estado de un desarrollo a lo largo del tiempo, mientras que Github es algo
ms particular: un sitio web que usa Git para ofrecer a la comunidad de desarrolladores
repositorios de software. En definitiva, Github es un sitio web pensado para hacer posible
el compartir el cdigo de una manera ms fcil y al mismo tiempo darle popularidad a la
herramienta de control de versiones en s, que es Git.
Cabe destacar que Github es un proyecto comercial, a diferencia de la herramienta Git
que es un proyecto de cdigo abierto. No es el nico sitio en Internet que mantiene ese
modelo de negocio, pues existen otros sitios populares como Bitbucket que tienen la
misma frmula. No obstante, aunque Github tenga inversores que inyectan capital y est
movido por la rentabilidad econmica, en el fondo es una iniciativa que siempre ha
perseguido (y conseguido) el objetivo de hacer ms popular el software libre. En ese
sentido, en Github es gratuito alojar proyectos Open Source, lo que ha posibilitado que el
nmero de proyectos no pare de crecer, y en estos momentos haya varios millones de
repositorios y usuarios trabajando con la herramienta.
Pero ojo, para no llevarnos a engao, al ser Git un sistema de control de versiones
distribuido, no necesito Github u otro sitio de alojamiento del cdigo para usar Git.
Simplemente con tener Git instalado en mi ordenador, tengo un sistema de control de
versiones completo, perfectamente funcional, para hacer todas las operaciones que
necesito para el control de versiones. Claro que usar Github nos permite muchas
facilidades, sobre todo a la hora de compartir cdigo fuente, incluso con personas de
cualquier parte del mundo a las que ni conoces.
Esa facilidad para compartir cdigo del repositorio alojado en la nube con GitHub y la
misma sencillez que nos ofrece el sistema de control de versiones Git para trabajar, ha
permitido que muchos proyectos Open Source se hayan pasado a Github como
repositorio y a partir de ah hayan comenzado a recibir muchas ms contribuciones en su
cdigo.

Das könnte Ihnen auch gefallen