SoftwareTutoriales

GitHub, el repositorio de código abierto más importante del mundo

Seguro que has escuchado hablar en alguna ocasión de GitHub o has entrado alguna vez buscando determinado contenido. Pues bien, te vamos a explicar qué es este repositorio, para qué sirve y cómo funciona.

Qué es GitHub

repositorio codigo abierto

Es una plataforma creada para que los programadores y desarrolladores de software puedan publicar sus proyectos en código abierto. GitHub explicado de una manera sencilla es un sitio donde se almacena código en la nube accesible a todo el mundo. Pero es que, además, actúa un poco como una red social, ya que cualquiera puede aportar sugerencias al desarrollo.

Todo el código que se sube a la plataforma recibe la denominación de código abierto. Esto quiere decir que cualquier desarrollador puede descargar el código y manipularlo a su gusto.

Aunque lo explicaremos mejor más adelante, indicar que “Git” hace referencia a un sistema de control de versiones. Este sistema lo que ofrece es la capacidad de mantener la consistencia y la integridad de los archivos del software o proyecto que se exponga.

Los proyectos almacenados suelen incluir una Wiki o descripción del código. Esto sirve para informar a quien venga detrás del objetivo del código y cómo funciona. Habitualmente se destacan también partes del código que realizan funciones concretas.

GitHub actualmente es muy utilizado por los desarrolladores de software para criptomonedas. Podemos encontrar el código fuente de Bitcoin o Ethereum, entre otros. Además, muchos desarrolladores publican los Smart Contracts que desarrollan, el código fuente de las wallets y todo tipo de soluciones. Las propuestas de mejora para Bitcoin (BIP) o para Ethereum (EIP) también se publican en este repositorio y son debatidos por la comunidad y optimizados.

Finalmente indicar que Microsoft adquiere GitHub en junio de 2018 por un total de 7.500 millones de dólares. La compañía se comprometió a no realizar cambios en la plataforma y dejar que siguiera funcionando igual. Incluso ha publicado parte del código fuente de algunos de sus sistemas operativos más antiguos o parte del código fuente de Minecraft.

Qué es un control de versiones

control version github

Es un sistema que permite visualizar y gestionar los cambios realizados en un archivo o en un conjunto de estos. Los ingenieros de software utilizan este mecanismo para tener un control de las modificaciones realizadas en el código fuente. Algo que permite analizar todos los cambios y revertirlos si fuera necesario en un momento dado.

Tener este buen control de las versiones permite a los desarrolladores poder trabajar en varios proyectos de manera simultánea. Además, sirve para realizar todos los cambios que sean necesarios sin que se ralentice el trabajo de los compañeros.

Pongamos que aparece una brecha de seguridad importante en el nuevo código. Tener este control de versiones permite revertir la actualización y pasar a una versión estable sin la brecha de seguridad.

Qué es Git

que es git

Es un sistema de control de versiones distribuido. Permite a cualquier desarrollador que tenga acceso al código fuente, ver el historial y realizar los cambios necesarios. Todo mediante la herramienta en línea de comandos de Git.

Dicho proyecto de código abierto que arranco en 2005 y que se ha convertido en una de las plataformas más potentes. Actualmente se estima que sobre el 87% de los desarrolladores utilizan Git para sus proyectos.

Se diferencia de los tradicionales sistemas de control de versiones centralizados, en que ofrece ramas de características. Explicado de una manera sencilla, el ingeniero de software puede crear una rama de características que genera un repositorio local aislado. Algo que permite hacer cambios en el código sin que afecte al resto del desarrollo.

Una rama de características no afecta a la rama maestra, que es donde está el código primario del proyecto. Cuando se terminan de realizar los cambios y el código se verifica, la rama de características puede unirse de nuevo a la rama maestra. Este es el mecanismo por el cual los cambios se aplican al proyecto.

Para qué sirve GitHub

que podemos hacer github

Sirve para que los desarrolladores puedan subir sus proyectos de manera gratuita en formato de código abierto. Esto permite a los desarrolladores darse a conocer y crearse un nombre ante la comunidad de desarrolladores. Pero, la plataforma también ofrece la posibilidad alojar una versión de pago del proyecto.

Está construida como una solución colaborativa entre desarrolladores y miembros de la comunidad. Cualquier repositorio subido es visto por la comunidad y se pueden ofrecer propuestas para mejorar el código o las capacidades del proyecto en cuestión. Pero quizá la función más importante, es reportar fallos en el código y vulnerabilidades.

Integra también un sistema de seguimiento de los problemas, que permite que cualquiera pueda agregar mejoras, sugerencias u optimizaciones. Dispone también de una función de revisión de código, que va más allá del código fuente. La herramienta permite implementar anotaciones para que el creador del código o cualquiera que lo visite, pueda revisarlo. Además, se pueden generar discusiones basándose en las anotaciones y así mejorar el código.

Tenemos también la posibilidad de ver gráficos de como va el desarrollo del proyecto y las bifurcaciones del mismo. Permite ver también las actualizaciones o los cambios que se han ido realizando. Se incluyen también características de redes sociales, que permite seguir a los desarrolladores de software que nos gustan y no perdernos actualizaciones.

Cómo funciona GitHub

capacidades desarrollo github

GitHub contiene una gran cantidad de elementos que es necesario detallar para entender bien el funcionamiento de la plataforma. Vamos a ello.

Repositorio

Es donde se almacena toda la información de un proyecto. No solo se almacena el código, también las imágenes, carpetas, documentación, etc. Para cada proyecto se crea un repositorio único, generándose un acceso exclusivo al proyecto.

Branch (ramificaciones)

Puede ser que se requiera modificar algún elemento del proyecto en concreto y esto se hace de manera aislada. Esto permite que se pueda seguir accediendo al repositorio principal sin que se vea afectado. Algo que se hace mediante Branch, que permite realizar una copia exacta del proyecto, pero en fase de prueba. Esto permite que cualquier error o cualquier problema no afecte al proyecto y se pueda solucionar de una manera muy rápida.

Pull Request (Fusión)

Cuando subimos un cambio en una rama del proyecto es importante reportarlo al resto de miembros. Para eso están los “Pull Requiest” que permiten a los colaboradores auditar el código y así validarlo. Esto también sirve para que el resto de desarrolladores puedan mejorarlo.

Tag

Ofrece la posibilidad de controlar el repositorio aportando información al resto de miembros del proyecto. Se denomina a esta acción como “Tagging” y tiene gran importancia en la gestión de la vida de un proyecto. Permite también crear un en caso de ser necesario o quererse.

Fork

Este término se utiliza para referirse a la creación de un nuevo proyecto basándose en uno ya existente. Ofrece la posibilidad de realizar modificaciones y almacenarlas en un nuevo repositorio y no en el original. Permite que los proyectos sigan creciendo gracias a que los desarrolladores puedan seguir mejorando un software por su cuenta. Si se implementa una gran mejora, se podría implementar al proyecto original.

Cómo empezar en GitHub [Paso a paso]

Los primeros pasos en GitHub, si no has usado nunca la plataforma, puede ser un poco confusos. Antes de empezar deberás registrarte, algo que es completamente normal.

La versión gratuita de la plataforma nos ofrece la capacidad de crear tantos repositorios como queramos y agregar todos los colaboradores que queramos, aunque la capacidad de almacenamiento se limita a 500MB. Si queremos más capacidad o funciones adicionales, deberemos adherirnos a algún plan de pago.

Si es la primera ver que vas a operar y es simplemente para exponer lo que vas desarrollando y crearte un porfolio, la versión gratuita es más que suficiente.

Crear un repositorio en GitHub

Publicar tu código requiere antes de crear un nuevo repositorio con el nombre que nos apetezca. De ahí penderán todos los elementos, podremos crear una descripción, crear ramas y hacer muchas cosas. Los pasos son:

1. Desde el home podemos crear un repositorio de una manera sencilla. Solo debemos pulsar en Create a repository y nos mandara para empezar a crear un nuevo proyecto. Si ya tenemos un proyecto iniciado, nos aparece el botón de New.

crear nuevo proyecto codigo abierto

2. Lo primero que veremos es la sección Owner, donde aparecerá nuestra foto y nuestro nombre. El siguiente campo es Repository name que sencillamente es el nombre que daremos al proyecto. Lo dejaremos en público para que cualquiera pueda acceder al mismo. Seleccionamos la casilla Add a README flie y finalmente pulsamos sobre el botón Create a repository

crear nuevo proyecto github

El proceso de crear un nuevo repositorio, como puedes ver, es bastante sencillo y accesible. Así quedará público y disponible en todo momento.

Crear ramas en GitHub

Las ramas son diferentes versiones o variantes de un mismo repositorio. Realizar estos cambios en el proyecto dentro de la rama de características, el desarrollador, de manera sencilla, puede ver como terminara afectando al proyecto principal cuando se integre. Crear una nueva rama de características es bastante simple:

1. Vamos al repositorio que hemos creado y pulsamos sobre main. Ahora introducimos el nombre de la nueva rama que queremos crear y pulsamos sobre el botón Create Branch

Así de simple es crear una nueva rama de características que tiene un diseño idéntico a la principal. Introducimos aquí los cambios que queramos sin que el proyecto original se vea afectado.

Commits para los cambios

Los Commits son la denominación que se les da a los cambios almacenados dentro de GitHub. Siempre que realicemos un cambio dentro de una rama de características, deberemos hacer un Commit para mantenerlo. El proceso de crearlo y confirmarlo es el siguiente:

1. Tenemos que acceder a la rama de características en cuestión realizando clic en main. Ahora nos aparece un menú desplegable y elegimos la rama que acabamos de crear, por ejemplo.

2. Debemos ahora hacer clic en el icono de lápiz que está en la parte derecha para editar el archivo. Una vez terminado, podemos implementar una descripción de los cambios realizados. Cuando este todo listo, guardamos los cambios haciendo clic en Commit changes

Crear solicitudes de extracción

Una de las capacidades más interesantes de GitHub es la posibilidad de pedir al resto de desarrolladores que trabajan en el proyecto realicen una revisión del código agregado. Para esto se necesita la creación de una solicitud de extracción. Algo que facilita el trabajo en equipo en un mismo proyecto, fomentando la colaboración y la participación.

Estas solicitudes permiten ver la diferencia entre el proyecto original y la rama de características propuesta. Los otros miembros del proyecto pueden ver el código y proponer mejoras. Cuando el resto de desarrolladores dé el visto bueno, se fusionará la solicitud de extracción con el proyecto principal.

Si quieres realizar una solicitud de extracción, debes seguir estos pasos:

1. Para implementar una de estas solicitudes debemos seguir los siguientes pasos: Pull requests > New pull request. Dentro de Example comparasions elegimos la rama de características en la que trabajamos

2. Ahora debemos pulsar sobre Create pull request. Se nos abre una nueva página en la que podremos agregar un título y agregar nuevo código y la correspondiente descripción. Para finalizar el proceso debemos pulsar en el botón de Create pull request

realizar pull request

Cuando todo está terminado, se podrán fusionar los cambios realizados en los archivos originales.

Palabras finales sobre GitHub

El repositorio de código actualmente es muy utilizado por parte de los desarrolladores que quieren compartir sus soluciones. Muchos incluso recurren a GitHub para mejorar el código que están desarrollando, buscando la colaboración de otros desarrolladores. También son muchos los que aprovechan piezas de código para sus desarrollos. Las posibilidades de este repositorio son enormes y es usado por millones de programadores de todo el mundo.

Te recomendamos este artículo en el que explicamos qué es y qué tipos de software existen

GitHub lleva tiempo siendo una herramienta popular, pero ha ganado mucha fuerza con las criptomonedas. Podemos encontrar el código fuente de Bitcoin, Ethereum, Monero y otras tantas criptomonedas. También es habitual encontrar el código de diferentes Smart Contracts, el código de diferentes exchange descentralizadas como Uniswap o SushiSwap. Incluso se puede encontrar código de soluciones o propuestas de mejora, como el código de Taproot, Lightning Network o de Ethereum London, entre otros.

Pero hay más, y es que muchos programadores lo que hacen es crear un porfolio propio. Incluyen piezas de código o soluciones que han desarrollado, generándose un nombre en la comunidad o para buscadores de talento que buscan incorporar nuevos desarrolladores.

¿Cuéntanos tu experiencia si utilizas GitHub y qué subes a esta plataforma?

Roberto Solé

Técnico Superior en Electrónica y en Energías Renovables, Técnico en Prevención de Riesgos Laborales y Técnico Electricista de Baja Tensión apasionado del hardware y las nuevas tecnologías, además de hodl de Bitcoin. Hace tiempo cruce el Stargate y desde entonces me dedico a la exploración.
Los datos de carácter personal que nos facilite mediante este formulario quedarán registrados en un fichero de Miguel Ángel Navas Carrera, con la finalidad de gestionar los comentarios que realizas en este blog. La legitimación se realiza a través del consentimiento del interesado. Si no se acepta no podrás comentar en este blog. Puedes consultar Política de privacidad. Puede ejercitar los derechos de acceso, rectificación, cancelación y oposición en [email protected]
Botón volver arriba