En internet, todo el mundo quiere saber qué es GitHub, solo en Google, hay más de 600 millones de resultados relacionados con esta pregunta. Incluso si no perteneces al campo de la programación, es posible que hayas oído mencionar el nombre.
Sin embargo, si nunca lo has usado, es difícil que sepas si se trata de un sitio de almacenamiento en la nube, una red social para la gente que trabaja en programación o un sitio para compartir archivos de código. La verdad es que GitHub es todo eso, y muchas otras cosas.
Hoy en día, GitHub es uno de los recursos de programación más reconocidos entre la comunidad de ese campo para trabajar en conjunto y compartir archivos de código. Es gratuito, fácil de usar y se ha convertido en una pieza central en las iniciativas para promover el uso del software de código abierto.
En este artículo explicaremos los aspectos básicos de GitHub: qué es, para qué sirve y cómo empezar a usarlo. Lo hemos dividido en secciones por temas para que puedas encontrar lo que buscas, tanto si ya conoces algo del tema, como si no sabes nada todavía.
Qué es GitHub
Es una plataforma online de desarrollo de software que se usa para almacenar, supervisar y trabajar con proyectos de software.Facilita el intercambio de archivos de código y trabajar en proyectos colaborativos de código abierto. También funciona como una red profesional, en donde las personas que trabajan en esta área pueden establecer relaciones, colaborar y promover su trabajo.
Desde que se lanzó en 2008, la plataforma ha atraído millones de usuarios y se ha establecido como un centro para el desarrollo de software que ofrece varias características importantes de manera gratuita, entre ellas, el intercambio de información y la comunicación en tiempo real.
Además, como parte de sus servicios, le permite a sus usuarios crear un perfil y una marca para promoverse como profesionales; por ejemplo, es posible entrar a ver la página de una persona y ver los proyectos que está llevando a cabo y con los que ha contribuido. Por estas razones, se ha convertido en una red social del ámbito de la programación que fomenta el desarrollo colaborativo de software y sitios web.
Cómo funciona GitHub
En esta plataforma es posible crear una cuenta, subir archivos y crear proyectos de programación. Sin embargo, las verdaderas ventajas de GitHub se ven cuando se trabaja en proyectos grupales.
Si bien escribir código es una labor que se puede hacer en solitario, la mayor parte de los proyectos de desarrollo se deben llevar a cabo en equipo. Algunas veces, todas las personas que trabajan en un proyecto están en el mismo lugar al mismo tiempo, pero otras veces deben trabajar de manera asíncrona. Cuando esto sucede, pueden surgir muchos inconvenientes, pero GitHub ofrece una gran variedad de soluciones.
En primer lugar, todos los archivos de código y la documentación que lo acompaña están en el mismo sitio. Esto reduce los problemas de acceso para todas las personas que quieran participar en un proyecto. Además, cada repositorio contiene las instrucciones y los datos necesarios para saber cuáles son los objetivos y las normativas de cada trabajo.
Por otra parte, la escritura de código es más creativa y abstracta de lo que la gente suele pensar. Por ejemplo, supongamos que dos personas están trabajando en dos archivos de código que deben funcionar en conjunto, pero puede suceder que hay partes de un archivo que causan fallas en el otro, o que haya partes del código de uno que afecten el funcionamiento del otro.
GitHub resuelve estos problemas al mostrar cómo ambos archivos cambiarán el código principal. Esto permite identificar errores antes de aplicar los cambios, lo que hace más eficiente el proceso.
La plataforma también facilita el seguimiento de los cambios y volver a una versión anterior de un proyecto. Sin embargo, para entender mejor cómo funciona este control de versiones, primero es necesario conocer la tecnología en la que se basa Github, que se denomina Git.
Qué significa Git
Git es un software de control de versiones de código abierto, que se usa para administrar y hacer seguimiento de los cambios en un archivo. Esta tecnología se puede usar con cualquier tipo de archivo, pero se usa con más frecuencia en la programación de código.
Git es el sistema de control de versiones más usado en el ámbito de la programación, y GitHub específicamente aprovecha esta tecnología, de ahí su nombre.
Qué es el control de versiones
Aunque desconozcas el término, es muy probable que ya hayas trabajado con algún tipo de control de versiones. Por ejemplo, Google Docs (al igual que otras aplicaciones de Google Workspace) tiene una función que permite ver el historial de versiones, en el que se pueden ver los cambios que se le han hecho a un documento en distintos momentos. Microsoft Office tiene una característica similar, llamada "control de cambios". Otra posibilidad es crear múltiples copias de un documento e ir nombrando cada una v1, v2, v3, etc.", "
En el caso de los proyectos de software, es necesario tener un control de versiones más avanzado, especialmente si se llevan a cabo en equipo.
Por qué es importante el control de versiones en programación
Al desarrollar software, se actualiza el código con frecuencia y en simultáneo para añadir funciones y corregir errores. Sin embargo, no tendría sentido hacer todo esto directamente en el código fuente, ya que si surgen problemas, afectarán a los usuarios. En vez de eso, quienes programan el código crean copias de partes específicas y luego de hacer pruebas, las añaden a la base de código principal.
Hasta ahí, parece sencillo, pero si hay muchas personas trabajando en el mismo proyecto, pronto se volverá complicado, especialmente si no hay manera de combinar las contribuciones de cada quien en una base de código unificada o si no es posible ver quién hizo las modificaciones. Es esencial poder almacenar y supervisar cada cambio, por ejemplo, en situaciones en donde algo deja de funcionar y es necesario regresar y restaurar una versión anterior.
Para eso es Git. Si se quiere hacer una modificación a una parte de un software, se puede hacer lo siguiente:
- descargar una copia del código fuente desde su ubicación central (denominada repositorio) a un sistema local,
- hacer modificaciones de manera segura en esa copia,
- incorporar la copia con los cambios en el archivo fuente del repositorio,
- y añadir comentarios explicando las modificaciones que se hicieron.
Luego, es posible hacer seguimiento a esas modificaciones y almacenar las versiones previas como respaldo. Además, GitHub permite revisar todos los cambios hechos por el equipo, no solamente los cambios hechos a nivel individual, lo que es muy útil cuando hay que resolver problemas en proyectos de gran complejidad.
Para qué sirve GitHub
En el campo de la ingeniería y la programación de software, GitHub permite crear repositorios remotos y públicos en la nube, de manera gratuita. Los repositorios están constituidos de los archivos y el historial de revisiones de cada proyecto de programación.
Después de que se ha creado un repositorio en GitHub, es posible copiarlo en un dispositivo, añadir y modificar archivos de manera local, y luego subir esos cambios al repositorio para que todo el mundo pueda verlos.
A continuación, te explicamos varias razones por las que es mucho más ventajoso trabajar con GitHub que en un repositorio independiente.
Eficiencia en la colaboración
Como decíamos antes, las características de trabajo colaborativo de GitHub, como el control de versiones y la administración del acceso, son sus mayores puntos a favor.
Para ilustrarlo, imaginemos una situación hipotética. Supongamos que quieres crear un videojuego online, pero necesitas que alguien te ayude.
Creas un repositorio (repository) en GitHub para almacenar todos los archivos, incluidas las versiones actuales y las anteriores, y luego le das acceso a la persona que te ayudará.
Tú decides trabajar en la estructura del juego y las pantallas principales, mientras que tu colega se ocupa del menú del juego y las pantallas de la configuración. Para poder ir incorporando los cambios al mismo tiempo y sin interferir con el trabajo de la otra persona, creas una rama (branch), es decir, un área de desarrollo independiente, para cada persona del equipo.
Cuando tu colega termina su parte del trabajo, hace una solicitud de extracción (pull request) para combinar su trabajo con el tuyo. Si lo apruebas, pueden fusionar (merge) las ramas y, por lo tanto, el código.
Ahora, digamos que necesitas que otra persona vea el repositorio, porque tiene una buena idea para añadir el modo multijugador. En ese caso, creará una copia de tu repositorio o bifurcación (fork), para añadir las características nuevas.
Al terminar, te envía una solicitud de extracción. Si lo apruebas, esa bifurcación del repositorio se fusionará con el tuyo, lo que creará la opción multijugador en tu videojuego.
Es importante tener en cuenta que cualquier persona puede crear una bifurcación de un repositorio público, pero solamente quien tenga la propiedad del repositorio puede aceptar o rechazar esas solicitudes.
Como no hay software que funcione a la perfección al primer intento, tu repositorio también tiene una sección llamada incidencias (issues) para hacer una lista de lo que falta por hacer y reportar, discutir y resolver problemas.
Para abordar estas incidencias, es posible revisar el registro de cambios (changelog) del archivo para ver el momento y la manera en que se produjo el error.
Así, GitHub se convierte en un espacio centralizado en el que grupos de decenas o incluso cientos de personas trabajan en conjunto en el mismo proyecto, sin preocuparse de anular el trabajo de los demás o perder los cambios hechos.
Facilidad en la administración de archivos
Otra de las ventajas de GitHub es que ofrece la posibilidad de trabajar en cualquier dispositivo o entorno de programación.
En GitHub, Git tiene una capa de interfaz gráfica de usuario (GUI) muy fácil de manejar. En general, este sistema funciona mediante líneas de comandos, una interfaz basada en texto que las personas que escriben código saben manejar muy bien, pero no siempre resulta ser la manera más eficiente de interactuar con los archivos.
La interfaz de GitHub permite visualizar de manera más fácil y clara las acciones y el historial de los archivos. Es mucho más conveniente para quienes trabajan con Git y más accesible para quienes se inician con el sistema.
Otra característica que hace la plataforma más accesible es la infraestructura en la nube, que hace posible acceder a cada repositorio desde cualquier ubicación y cualquier dispositivo, descargarlo e incorporar los cambios.
Creación de redes profesionales
Todas las personas que usan GitHub saben que es más que un lugar de trabajo. Todos los usuarios pueden tener perfiles para mostrar sus proyectos, contribuciones y su actividad en el sitio, y si son públicos, otras personas pueden verlos y consultar sus repositorios.
La red profesional de GitHub es un elemento crucial en el éxito de la plataforma, ya que motiva a sus usuarios a buscar y participar en una gran variedad de proyectos de código abierto. Antes, para poder hacerlo, había que contactar personalmente a las personas que tenían la propiedad de los proyectos y solicitar permiso para poder contribuir.
Con GitHub, es muy fácil, solo hay que bifurcar un repositorio y hacer una solicitud de extracción. Los usuarios que tienen el proyecto pueden ver el perfil de la persona y sus contribuciones anteriores antes de aceptar su solicitud.
GitHub también sirve como portafolio para presentar tus servicios ante las empresas. Ya que cualquier persona puede ver los proyectos en los que alguien ha participado, en muchos casos los departamentos de recursos humanos usan la plataforma como fuente de talentos.
Proyectos de código abierto
Gracias a todas sus ventajas, GitHub se ha convertido en el centro de colaboración para proyectos de código abierto, lo que ha permitido la creación de muchas tecnologías que se usan en una gran variedad de ámbitos. Desde estructuras basadas en CSS hasta bibliotecas para visualización de datos, pasando por juegos ingeniosos y adictivos como este para unir números, hay una gran cantidad de aplicaciones fascinantes que no serían posibles sin los repositorios de GitHub.
Siguiendo la tendencia de la Web 2.0, Github también le ha abierto las puertas a quienes quieren aprender programación, mediante una comunidad de usuarios que tienen muchas ganas de interactuar, innovar y contribuir.
Repositorios privados
Si bien lo que ha contribuido en gran parte al éxito de GitHub son sus funciones gratuitas, la plataforma también ofrece servicios de pago, entre ellos, los repositorios privados.
En este tipo de servicios, se pueden conformar equipos para que trabajen de manera colaborativa pero manteniendo todos sus archivos de código en un área virtual cerrada. También hay planes para empresas, que les permiten usar las herramientas colaborativas internamente.
Si quieres saber más sobre el funcionamiento de GitHub y sus aplicaciones, este video es perfecto para quienes quieren empezar.
Cómo empezar a usar GitHub
Si ya tienes ganas de saber cómo usar GitHub, aquí te damos un paso a paso para empezar. Sin embargo, debes tener en cuenta que ya debes estar familiarizado con las líneas de comandos, ya que Git usa la terminal como interfaz.
1. Instalar Git
Instala la última versión de Git en tu equipo, ya que necesitas tener este software para poder trabajar con un repositorio de GitHub. Hay varias maneras de hacerlo, así que te recomendamos seguir las instrucciones del sitio web; y no te preocupes, porque es gratis.
2. Iniciar sesión en GitHub
Después de instalar Git, ve al sitio web de GitHub y crea una cuenta usando tu correo electrónico.
3. Crear un repositorio
Después de abrir tu cuenta, GitHub te llevará al panel principal. Para iniciar un repositorio, haz clic en create repository. Esto te permite guardar todos los archivos de código de tu nuevo proyecto en el mismo lugar.
4. Nombrar el proyecto
En la misma pantalla para crear un nuevo repositorio, escribe el nombre del repositorio y añade una descripción. Estos datos los puedes cambiar más adelante.
5. Agregar los detalles del proyecto
Ahí mismo, agrega un archivo README ("léeme", en español, es un archivo de texto que describe tu proyecto), un archivo .gitignore (sirve para eliminar otros archivos que no son relevantes, como .DS_Store) y una licencia para tu proyecto.
Toda esta información le permite a otras personas que quieran colaborar entender de qué se trata tu proyecto y saber las instrucciones de trabajo.
6. Crear un repositorio
Haz clic en create repository. A continuación, verás la página principal del repositorio, en la que aparecerán todos tus archivos.
7. Crear una copia local del repositorio
Ahora crearás una copia local de tu repositorio de GitHub, que en términos técnicos se denomina "clonar" el repositorio, para editar los archivos e incorporar los cambios. En la página principal del repositorio, haz clic en el botón de color verde code y luego copia la dirección HTTPS de tu repositorio.
Si bien esta acción parece redundante puesto que ya tienes una copia de tu proyecto en tu disco duro, recomendamos hacerlo, porque así será más fácil ver si otras personas eliminaron o añadieron archivos. Además, permite identificar y corregir errores de fusión.
8. Elegir un directorio
Abre tu terminal y busca el directorio que quieres poner en tu copia del repositorio.
9. Pegar la dirección del repositorio
En la terminal, escribe git clone. Después, pega la dirección del repositorio que habías copiado en el paso 7. La línea de comandos debería verse de la siguiente manera:
10. Clonar y revisar el repositorio copiado
Presiona la tecla intro para clonar el repositorio. Verás que se añadió un archivo nuevo a tu sistema de archivos local (filesystem) con el nombre de tu repositorio. Si abres este archivo, verás que contiene los archivos de tu repositorio de GitHub. Esas son las versiones duplicadas de los archivos de tu repositorio que podrás editar y luego incorporar.
11. Crear otro archivo en el repositorio nuevo
Ahora, para terminar, vamos a crear un archivo nuevo en el repositorio clonado para luego incorporarlo a GitHub. En el clon local, crea un archivo de texto con el nombre hola.txt. Ahí mismo, pega el texto ¡Hola, todo el mundo! y guarda el archivo.
12. Preparar los archivos para la incorporación
En la terminal, entra al repositorio clonado. Luego, escribe git add . y presiona la tecla intro. Esto prepara los archivos en el repositorio clonado para la incorporación.
13. Aplicar los cambios en el registro de cambios
En la terminal, escribe git commit -m "added hola.txt" y presiona la tecla intro. Esto aplicará (commit) los cambios en el registro de cambios (changelog). El texto entrecomillado es un comentario que describe brevemente el propósito de la acción.
14. Incorporar los archivos del repositorio clonado
En la terminal, escribe git push origin main y presiona la tecla intro.
15. Revisar el archivo nuevo
Al revisar el repositorio en Github, verás que se agregó el archivo nuevo. Ahora, ya todo está listo para empezar a trabajar y contribuir al proyecto nuevo.
GitHub es la plataforma detrás del software
Cuando pensamos en innovación tecnológica, es fácil atribuirle todo a una sola persona, como Steve Jobs o Bill Gates. Pero la verdad es que cada programa y cada aplicación surgen del ingenio y el trabajo de muchas personas. La tecnología avanza gracias a la dedicación millones de profesionales y aficionados a la programación que trabajan en conjunto para desarrollar cosas nuevas.
Lo mejor de GitHub es que elimina las barreras, de tal forma que cualquiera puede proponer ideas en los proyectos que quiera, o iniciar un proyecto propio.
Sería muy difícil llegar a donde hemos llegado sin el software de código abierto creado a través de GitHub. Ahora, es tu turno de explorar y proponer ideas.
Nota: Este artículo se publicó por primera vez en septiembre de 2021 y se ha actualizado para incluir más información relevante.