GitHub vs GitLab: principales diferencias y cuál elegir
Escritor por Steven Vaughan-Nichols, en ZDNet
No es GitHub versus GitLab. Ambos están basados en el sistema de control de versiones distribuido Git, pero tienen enfoques de desarrollo muy diferentes.
Mucha gente me pregunta: "¿Qué sistema de control de versiones distribuido debo usar para mi proyecto de programación, GitHub o GitLab?" No es una pregunta tan simple.
Primero, ¿realmente necesitas un sistema de control de versiones distribuido (VCS)? El trabajo de un VCS (también conocido como sistema de gestión de código fuente (SCM)) es facilitar que múltiples desarrolladores, diseñadores y miembros del equipo trabajen juntos en el mismo proyecto. Asegura que todos tengan el mismo acceso al código más reciente y que las modificaciones sean rastreadas.
Esto es más fácil de decir que de hacer.
Es por eso que Linus Torvalds piensa en Git como su otra gran invención. Git es gratuito, de código abierto y rápido. También funciona mejor que sus predecesores, como Apache Subversion, Concurrent Versions System (CVS), Perforce y Rational ClearCase. Hay una razón por la cual tantos servicios VCS tienen "Git" en sus nombres.
Git
Claro, puedes usar Git solo en tu propio servidor. Si todo lo que estás haciendo es construir un programa internamente, una instancia local de Git es todo lo que necesitas. También puedes usar Git como un VCS centralizado en tus propios servidores o nube. No hay necesidad de suscribirse a un servicio VCS cuando puedes crear el tuyo propio. Con este modelo, puedes ejecutar fácilmente un proyecto con tu equipo y socios repartidos por todo el mundo.
Si necesitas las notificaciones de un servicio Git alojado, sin embargo, es hora de mirar hacia GitHub y GitLab.
GitHub
GitHub es el más antiguo de los servicios. Fue desarrollado por Chris Wanstrath, P. J. Hyett, Tom Preston-Werner y Scott Chacon usando Ruby on Rails en febrero de 2008. Por su ventaja de ser pionero, GitHub se convirtió en la base de muchos repositorios de código abierto.
GitLab
GitLab vino después; Los desarrolladores ukrainianos Dmitriy Zaporozhets y Valery Sizov crearon GitLab en 2011. Desde el primer día, GitLab fue diseñado para ser un conjunto de herramientas de colaboración, así como un servicio de repositorio de código.
Similitudes entre GitHub y GitLab
Se parecen mucho. Ambos se ejecutan en servidores Linux, vienen con rastreadores de problemas (Issues) y ofrecen una amplia variedad de integraciones de terceros y herramientas de importación.
Ambos también tienen interfaces de línea de comandos (CLI) para desarrolladores avanzados y también ofrecen interfaces basadas en la web para nuevos programadores.
En el caso de GitLab, la interfaz de usuario usa el propio sistema de diseño Pijamas de GitLab y está escrita en Vue.js.
La interfaz de usuario de GitHub, Desktop, está disponible como un programa Windows o macOS y ahora también en Visual Studio.
Aunque ambos soportan código abierto, los propios repositorios usan un modelo de programación mixto. GitLab usó un enfoque de negocios de núcleo abierto. En este modelo, GitLab Community Edition permanece gratuito y de código abierto, mientras que GitLab Enterprise Edition tiene más funciones y viene con soporte. En cuanto a GitHub, aunque su código contiene algo de código fuente abierto, no es un proyecto de código fuente abierto.
Sin embargo, fundamentalmente, ambos ofrecen repositorios basados en la web con código abierto, gestión de código basada en Git y cambios de archivos locales con un repositorio remoto. Si todo lo que deseas es la funcionalidad básica de Git, pero con otra persona para preocuparse de mantener Git funcionando, cualquiera de los servicios funcionará bien para ti.
Claro, algunas personas todavía no les gusta GitHub porque Microsoft lo adquirió en 2018. Para algunos, Microsoft siempre será el "Imperio del Mal", sin importar cuánto Microsoft muestre que ahora soporta métodos y software de código abierto - o con qué frecuencia el CEO de Microsoft, Satya Nadella dice que ama Linux. Dicho esto, esto nunca fue un factor tan grande. Aunque algunos usuarios huyeron de GitHub a GitLab y Atlassian BitBucket en ese momento, nunca fue el éxodo masivo que algunos esperaban.
GitHub es claramente el gorila de 800 libras del mundo VCS. Según la empresa de herramientas de programación JetBrains, el 77% de los desarrolladores usan GitHub regularmente, en comparación con el 40% de GitLab y el 25% de BitBucket.
Diferencias
La principal diferencia es que GitLab tiene integración continua/entrega continua (CI/CD) y flujos de trabajo DevOps integrados. GitHub te permite trabajar con las herramientas de CI/CD de tu elección, pero tú mismo necesitarás integrarlas. Normalmente, los usuarios de GitHub trabajan con un programa de CI de terceros, como Jenkins, CircleCI o TravisCI.
Otra diferencia importante es que GitHub prioriza la velocidad, mientras que GitLab se enfoca en la confiabilidad.
Específicamente, GitHub defiende la fusión de nuevas ramas con el branch master. De esta manera, ya estás listo para implementar rápidamente, mientras también restauras rápidamente tu versión anterior si algo sale mal.
En el flujo de trabajo de GitLab, creas múltiples ramas estables además de master. Como mínimo, tendrás ramificaciones estables de producción y preproducción. Esto significa que necesitarás pasar por un proceso de prueba de múltiples etapas. Una única revisión de código en la solicitud de fusión no es suficiente.
Claro, puedes hacer que cualquiera funcione de la manera que desees, pero hay una clara diferencia en el enfoque preferido.
Otra diferencia fundamental es que GitLab ofrece una solución completa de desarrollo de software. Se anuncian como una plataforma completa de DevOps por una razón. Dicho esto, GitLab ofrece integraciones con algunos programas y plataformas de terceros, como Jira, Microsoft Teams, Slack, Gmail y varios otros aplicaciones y plataformas.
GitHub, por otro lado, ofrece menos servicios dentro de su propio programa, pero ofrece formas de integración con muchos programas y servicios externos. Esto incluye software en lo que GitHub trabajó para integrar al servicio y cientos de otros programas a través de GitHub Marketplace.
Precios
Ambos servicios ofrecen planes gratuitos. Estos vienen con repositorios públicos y privados ilimitados. Esto puede ser suficiente para ti si eres un programador individual o tienes un equipo pequeño. Pero, si programar es el negocio de tu empresa, necesitarás más.
Es difícil comparar los precios de GitHub y GitLab. Son manzanas y naranjas. Sugiero comenzar con sus planes gratuitos para tener una idea de cómo fluye tu trabajo en cada plataforma y, luego, buscar suscribirte al que funcione mejor para ti.
Los costos de las suscripciones deben ser la menor de tus preocupaciones. He usado ambos y, para mis propósitos de programación de pequeña escala, funcionaron extremadamente bien.
Dicho esto, el plan Premium de GitLab cuesta US$ 19 por mes por usuario, mientras que el plan Ultimate completo cuesta US$ 99 por mes.
En cuanto a GitHub, el plan Team cuesta US$ 40 por año por usuario y el plan Enterprise cuesta US$ 200 por año por usuario. Pero el diablo está en los detalles, puedes descubrir que necesitarás pagar por extras, sin importar qué servicio finalmente suscribas.
No dejes que el precio sea tu guía. Lo que realmente importa es cuál de ellos te dará las herramientas y servicios que necesitas para desarrollar tu software de la mejor manera posible.
- Traducido por Prof. Uirá Ribeiro
Eso fue solo una pieza. El curso enseña el camino completo — desde tu primer comando hasta el día del examen.