{"id":702,"date":"2011-05-30T11:40:41","date_gmt":"2011-05-30T14:40:41","guid":{"rendered":"http:\/\/www.hackeruna.com\/?p=702"},"modified":"2011-05-30T11:40:41","modified_gmt":"2011-05-30T14:40:41","slug":"conociendo-github-el-servicio-donde-alojar-tus-repositorios-git","status":"publish","type":"post","link":"https:\/\/www.hackeruna.com\/2011\/05\/30\/conociendo-github-el-servicio-donde-alojar-tus-repositorios-git\/","title":{"rendered":"Conociendo GitHub, el servicio donde alojar tus repositorios Git"},"content":{"rendered":"
No en vano, es el servicio elegido por proyectos de software libre<\/strong> como jQuery, reddit, Sparkle, curl, Ruby on Rails, node.js, ClickToFlash, Erlang\/OTP<\/span>, CakePHP, Redis, y otros muchos. Adem\u00e1s, algunas de las grandes empresas de Internet, como Facebook<\/a>, alojan ah\u00ed sus desarrollos p\u00fablicos, tales como el SDK<\/span>, librer\u00edas, ejemplos, etc.<\/p>\n Nosotros no quer\u00edamos ser menos, y hemos creado una cuenta de GitHub para GenbetaDev<\/a> donde publicar ocasionalmente el c\u00f3digo que utilicemos para ciertos art\u00edculos. Aunque no busqu\u00e9is mucho en ella por ahora que de momento est\u00e1 vac\u00eda.<\/p>\n <\/p>\n Y ahora paso a hablaros un poco de qu\u00e9 es GitHub y cu\u00e1les son las ventajas evidentes de utilizar un servicio como \u00e9ste.<\/p>\n Aunque Git es un sistema descentralizado<\/strong> (no necesita de un servidor donde subir los cambios, sino que los desarrolladores pueden enviarse los mismos los unos a los otros desde sus equipos), es muy habitual encontrarnos con que un equipo de trabajo funciona mejor disponiendo de uno, ya que as\u00ed evitamos tener que descargar los cambios de cada ordenador perteneciente a un miembro del equipo de manera individual, debiendo \u00e9ste permanecer encendido para poder efectuar esas operaciones. De modo que una de las ventajas evidentes de GitHub, y que fue el servicio casi \u00fanico con el que naci\u00f3, es alojar el repositorio de c\u00f3digo<\/strong> en el que trabaja todo el equipo.<\/p>\n Al alojar el c\u00f3digo, podemos decidir si \u00e9ste ser\u00e1 p\u00fablico o su visibilidad estar\u00e1 limitada a unos usuarios determinados, que son los \u00fanicos que tendr\u00e1n permiso para acceder al mismo y subir cambios.<\/p>\n Pero adem\u00e1s de servir de alojamiento para el c\u00f3digo, GitHub posee un estupendo visor de c\u00f3digo<\/strong> mediante el cual, a trav\u00e9s del navegador, podremos consultar en un instante el contenido de un determinado fichero, con su resaltado de sintaxis<\/strong> correspondiente para el lenguaje en el que est\u00e9 escrito (ejemplo<\/a>). Este navegador es realmente r\u00e1pido, y gracias a \u00e9l podremos hacer peque\u00f1as consultas o copiar porciones de c\u00f3digo que nos puedan hacer falta en un momento determinado sin necesidad de bajarse todo el repositorio. Por supuesto, se puede navegar por cualquiera de las versiones del mismo, de modo que podemos ver el contenido de un fichero antes de que se dieran varias actualizaciones de cambios. Seleccionar un determinado commit, tag o rama es cuesti\u00f3n de pocos clicks.<\/p>\n Pero hoy en d\u00eda GitHub es mucho m\u00e1s que un servicio de alojamiento de c\u00f3digo. Adem\u00e1s de \u00e9ste, se ofrecen varias peque\u00f1as herramientas en l\u00ednea muy \u00fatiles para el trabajo en equipo<\/strong>. Entre ellas, caben destacar:<\/p>\n Adem\u00e1s de poder trabajar con tu equipo en el software que est\u00e9is construyendo, puedes contribuir a mejorar el software de los dem\u00e1s. Para poder alcanzar esta meta, Github provee de funcionalidades para hacer fork<\/strong> y solicitar pulls<\/strong>. Funcionan del siguiente modo: Imagina que se te ha ocurrido una funcionalidad, mejora o correcci\u00f3n de un bug de un software que no es tuyo, pero que est\u00e1 alojado en GitHub. Puedes clonar el repositorio ajeno (hacer un fork) para que se copie a tu cuenta, efectuar en esta copia los cambios que necesites, y finalizar emitiendo una solicitud de pull al due\u00f1o del repositorio original. \u00c9ste podr\u00e1 analizar los cambios que has realizado f\u00e1cilmente, y si considera interesante tu contribuci\u00f3n, hacer un merge de los mismos con el repositorio original en pocos clicks. Y sin que se pierda la autor\u00eda de tus commits.<\/p>\n Dado que la operaci\u00f3n de fork es tan sencilla, hay veces que, por dejadez o falta de tiempo u otros motivos, algunos de estos forks est\u00e1n m\u00e1s avanzados y estables que los repositorios originales. As\u00ed que no est\u00e1 de m\u00e1s echar un vistazo a todos los forks de un determinado software alojado en GitHub, utilizando la herramienta de visor gr\u00e1fico de la red de versiones de un repositorio (ejemplo<\/a>).<\/p>\nGit<\/strong> es uno de los sistemas de control de versiones<\/a> m\u00e1s populares entre los desarrolladores. Y parte culpa de su popularidad la tiene GitHub<\/strong>, un excelente servicio de alojamiento de repositorios de software con este sistema, que lejos de quedarse en esta funcionalidad, ofrece hoy en d\u00eda un conjunto de caracter\u00edsticas muy \u00fatiles para el trabajo en equipo.<\/p>\n
Ventajas de hospedar el c\u00f3digo en GitHub<\/h2>\n
<\/p>\n
Caracter\u00edsticas de GitHub \u00fatiles para el trabajo en equipo<\/h2>\n
\n
<\/p>\n
Funciones de revisi\u00f3n de cambios en el c\u00f3digo<\/h2>\n
Precio<\/h2>\n